91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

詳解Android 開發中的線程

發布時間:2020-12-02 15:50:16 來源:億速云 閱讀:99 作者:Leah 欄目:移動開發

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

Android 開發中線程的分析

代碼:

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秒執行一次 
      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新開一個線程執行,但程序退出時,線程依舊是執行的。博主就在onDestroy()中加上了removeCallbacks()。大概意思就是移除線程(銷毀)。

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

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

有人說:Android應用本身就是一個進程,當我們退出應用時,這個進程就已經銷毀了吧?

可是并沒有…

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

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

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

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

看完上述內容,你們對詳解Android 開發中的線程有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

清水县| 梨树县| 交口县| 莱州市| 府谷县| 油尖旺区| 花莲县| 德钦县| 韶山市| 双城市| 手游| 莱芜市| 北辰区| 铅山县| 灵丘县| 瑞丽市| 天津市| 安徽省| 封开县| 大竹县| 临夏县| 若羌县| 达日县| 图片| 卓尼县| 江达县| 黑水县| 镇坪县| 安岳县| 同江市| 古交市| 五台县| 安西县| 平阳县| 巍山| 柘荣县| 图片| 博罗县| 克山县| 安顺市| 伊金霍洛旗|