最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2017年04月06日 09:14:48   作者:我就是馬云飛  
這篇文章主要介紹了Android 開發(fā)線程的分析的相關(guān)資料,需要的朋友可以參考下

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

今天早上把公司給的任務(wù)做完了之后,突然就有點(diǎn)無聊,于是,把以前學(xué)的那些東西翻了翻,博客看了看,就看到一個(gè)關(guān)于線程的博客,有了很大的爭議,我也差點(diǎn)誤解了(感覺高大上~~~)。整體代碼差不多是這樣:

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啟動(dòng)線程 
    mHandler.post(mRunnable); 
  } 

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

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

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

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

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

可是并沒有…

Android的特色: 當(dāng)應(yīng)用程序退出的時(shí)候進(jìn)程資源并沒有銷毀,這樣做是為了下次啟動(dòng)這個(gè)程序的更快…我想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(shí)候來回收資源。當(dāng)你按下backspace鍵的時(shí)候,只是簡單的將位于堆棧里下一個(gè)activity彈出,將原來的activity壓棧而已,系統(tǒng)并保存原來的activity的一些歷史信息,并不銷毀,等你下次打開的時(shí)候,能夠很快的恢復(fù)。

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

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • 談一談Android內(nèi)存泄漏問題

    談一談Android內(nèi)存泄漏問題

    談一談Android內(nèi)存泄漏問題,圍繞內(nèi)存泄露的定義、內(nèi)存泄露的原理、內(nèi)存泄露的解決方法進(jìn)行探討,感興趣的小伙伴們可以參考一下
    2016-01-01
  • Android入門之Adapter的簡單使用教程

    Android入門之Adapter的簡單使用教程

    Adapter其實(shí)就是MVC的概念。這篇文章主要為大家簡單介紹一下Android中Adapter的簡單使用,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2022-11-11
  • Android數(shù)據(jù)庫LitePal的基本用法詳解

    Android數(shù)據(jù)庫LitePal的基本用法詳解

    這篇文章主要介紹了Android數(shù)據(jù)庫LitePal的基本用法詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-01-01
  • android倒計(jì)時(shí)控件示例

    android倒計(jì)時(shí)控件示例

    這篇文章主要為大家詳細(xì)介紹了android倒計(jì)時(shí)控件示例,感興趣的小伙伴們可以參考一下
    2016-03-03
  • Android使用 Spinner控件實(shí)現(xiàn)下拉框功能

    Android使用 Spinner控件實(shí)現(xiàn)下拉框功能

    Spinner是android的一種控件,用它我們可以實(shí)現(xiàn)下拉框。下面通過實(shí)例代碼給大家介紹Android使用 Spinner控件實(shí)現(xiàn)下拉框功能,感興趣的朋友一起看看吧
    2018-08-08
  • Android開發(fā)中如何去掉app標(biāo)題欄的實(shí)現(xiàn)

    Android開發(fā)中如何去掉app標(biāo)題欄的實(shí)現(xiàn)

    這篇文章主要介紹了Android開發(fā)中如何去掉app標(biāo)題欄的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • 實(shí)例講解Android多線程應(yīng)用開發(fā)中Handler的使用

    實(shí)例講解Android多線程應(yīng)用開發(fā)中Handler的使用

    這篇文章主要介紹了Android多線程應(yīng)用開發(fā)中Handler的使用,Handle主要被用來更新UI和處理消息,需要的朋友可以參考下
    2016-01-01
  • Android如何通過手機(jī)獲取驗(yàn)證碼來完成注冊(cè)功能

    Android如何通過手機(jī)獲取驗(yàn)證碼來完成注冊(cè)功能

    注冊(cè)app或者網(wǎng)絡(luò)帳號(hào)的時(shí)候,經(jīng)常需要手機(jī)獲取驗(yàn)證碼,來完成注冊(cè)功能,那么android如何通過手機(jī)獲取驗(yàn)證碼來完成注冊(cè)功能,代碼是怎么實(shí)現(xiàn)的呢?下面看看小編給大家?guī)Я说囊欢未a分析吧
    2015-11-11
  • android編程實(shí)現(xiàn)類似于支付寶余額快速閃動(dòng)效果的方法

    android編程實(shí)現(xiàn)類似于支付寶余額快速閃動(dòng)效果的方法

    這篇文章主要介紹了android編程實(shí)現(xiàn)類似于支付寶余額快速閃動(dòng)效果的方法,涉及Android時(shí)間函數(shù)的相關(guān)使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-11-11
  • Android Studio輕松構(gòu)建自定義模板的步驟記錄

    Android Studio輕松構(gòu)建自定義模板的步驟記錄

    這篇文章主要給大家介紹了關(guān)于Android Studio輕松構(gòu)建自定義模板的相關(guān)資料,文中通過示例代碼以及圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-10-10

最新評(píng)論

金阳县| 台东县| 南陵县| 遂溪县| 肥东县| 延川县| 临澧县| 麟游县| 武强县| 吕梁市| 长丰县| 阜宁县| 淅川县| 卫辉市| 商河县| 邵阳市| 樟树市| 小金县| 三亚市| 荆州市| 靖安县| 阜阳市| 灌南县| 富裕县| 景东| 徐闻县| 淮北市| 古交市| 礼泉县| 旌德县| 静乐县| 京山县| 黄骅市| 旺苍县| 辽源市| 得荣县| 遵化市| 龙山县| 大厂| 姜堰市| 上林县|