Android工具箱之Activity生命週期

這是一個系列,咱們將其命名爲工具箱,若是你尚未看以前的文章:segmentfault

Android工具箱之Context解析app

Android工具箱之文件目錄工具

Android工具箱之組織你的代碼文件this

Android工具箱之理解app資源文件spa

Android工具箱之遷移到AppCompatcode

Android工具箱之Android 6.0權限管理blog

Activity的生命週期

背景

用戶打開app,瀏覽頁面,Android機器在棧內維護activitys。當前呈現給用戶的activity老是在棧頂。生命週期

activity的生命週期一般有這四個:圖片

  • Running activity處於棧頂,正在運行資源

  • Paused activity仍然可見,可是不和用戶交互

  • Stopped activity再也不可見

  • Killed activity被系統殺死或者主動調用了onfinish()方法。

activity生命週期

咱們能夠看一看這張圖:

圖片描述

注意:onresume和onpause,onPause和onStop的區別。在onResume方法中,常常會寫一些刷新數據或者其餘非耗時操做,一樣onPause也是在activity結束以前,作相關的保存數據工做。onPause和onStop的區別,根據上圖就可知,onPause的時候,activity仍然可見,但onStop的時候,activity徹底不可見。那麼在何時會執行onPause,不執行onStop呢,答案是在展示Dialog或者其餘浮層的時候。

調用父類方法

你應該在寫oncreate方法以前調用父類方法,這一樣也是Java規範。在onPause方法以後調用父類方法。原則是初始化以前是先調用父類方法,結束以前是後調用父類方法。

public void onCreate() {
   super.onCreate();
   // do work after super class function
   // setContentView(R.layout.main);
}

public void onPause() {
   // do work here first before super class function
   // LocalBroadcastManager.getInstance(this).unregisterReceiver(mMessageReceiver);
   super.onPause();
}
相關文章
相關標籤/搜索