真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

詳解Android開發(fā)中的線程

今天就跟大家聊聊有關(guān)詳解Android 開發(fā)中的線程,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

十余年的敘永網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。成都全網(wǎng)營銷的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整敘永建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。成都創(chuàng)新互聯(lián)公司從事“敘永網(wǎng)站設(shè)計”,“敘永網(wǎng)站推廣”以來,每個客戶項目都認(rèn)真落實執(zhí)行。

Android 開發(fā)中線程的分析

代碼:

package sw.angel.thread; 
import android.app.Activity; 
import android.os.Bundle; 
import android.os.Handler; 
import android.util.Log; 
public class ThreadDemo extends Activity { 
  private static final String TAG = "ThreadDemo"; 
  private int count = 0; 
  private Handler mHandler = new Handler(); 

  private Runnable mRunnable = new Runnable() { 

    public void run() { 
      //為了方便 查看,我們用Log打印出來 
      Log.e(TAG, Thread.currentThread().getName() + " " +count); 
      count++; 
      setTitle("" +count); 
      //每2秒執(zhí)行一次 
      mHandler.postDelayed(mRunnable, 2000); 
    } 

  }; 
  @Override 
  public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main);  
    //通過Handler啟動線程 
    mHandler.post(mRunnable); 
  } 

  protected void onDestroy() { 
    //將線程銷毀掉 
    //mHandler.removeCallbacks(mRunnable); 
    super.onDestroy(); 
  } 
} 

所謂的爭議是什么呢?看了這塊代碼的大概意思,很多人會以為每2s新開一個線程執(zhí)行,但程序退出時,線程依舊是執(zhí)行的。博主就在onDestroy()中加上了removeCallbacks()。大概意思就是移除線程(銷毀)。

當(dāng)然,首先指出的一點就是,這個demo是每2秒執(zhí)行一次Runable。相當(dāng)于每2秒執(zhí)行一次主線程,用logcat打印出來。而不是每2秒新開一個線程。而無論你是否加上最后一句話,你會發(fā)現(xiàn)線程沒有停止過。相當(dāng)于,隔2秒就執(zhí)行一次,無限循環(huán)下去。
為什么還會執(zhí)行?嗯,這是個問題。好了,我也不賣關(guān)子了。

退出的時候,程序相當(dāng)于只是 finish 掉了,如果只是簡單的finish的話,該程序并沒有銷毀掉,主線程還繼續(xù)運行的,只是被前一個activity覆蓋而已。

有人說:Android應(yīng)用本身就是一個進(jìn)程,當(dāng)我們退出應(yīng)用時,這個進(jìn)程就已經(jīng)銷毀了吧?

可是并沒有…

Android的特色:當(dāng)應(yīng)用程序退出的時候進(jìn)程資源并沒有銷毀,這樣做是為了下次啟動這個程序的更快…我想Android的思想是達(dá)到資源利用率的最大化,但這也有弊端,如果有應(yīng)用需要系統(tǒng)資源,而系統(tǒng)資源又不夠,那么就得去銷毀掉其它資源,騰出地方來…

如果你想知道是不是真的沒有銷毀,你可以在onCreate判斷savedInstanceState是否等于NULL就可以知道是不是reinitialized了,或者在onBackPressed調(diào)用System.exit(0)真正退出進(jìn)程。

android的特色之一:并不由用戶來銷毀activity,activity 的生命周期完全交給系統(tǒng)來管理 ,等系統(tǒng)在適當(dāng)?shù)臅r候來回收資源。當(dāng)你按下backspace鍵的時候,只是簡單的將位于堆棧里下一個activity彈出,將原來的activity壓棧而已,系統(tǒng)并保存原來的activity的一些歷史信息,并不銷毀,等你下次打開的時候,能夠很快的恢復(fù)。

android的特色之二:進(jìn)程資源并沒被銷毀,Activity的主線程也是沒有退出的,因此Activity中的消息隊列會一致執(zhí)行下去,當(dāng)再此啟動Activity的時候,又會實例化一Rrunnable,又會向此消息隊列中添加

看完上述內(nèi)容,你們對詳解Android 開發(fā)中的線程有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。


文章名稱:詳解Android開發(fā)中的線程
轉(zhuǎn)載源于:http://weahome.cn/article/pdhjgh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部