Android Studio 单刷《第一行代码》系列 04 —— Activity 相关
前情提要(Previously)
本系列將使用 Android Studio 將《第一行代碼》(書中講解案例使用Eclipse)刷一遍,旨在為想入坑 Android 開發,并選擇 Android Studio 作為開發 IDE 的同學開路。
PS:其實我就是現學現賣,希望我能堅持刷完。
系列目錄在此:
- Android Studio 單刷《第一行代碼》系列目錄
摘要(Abstract)
Activity 的生命周期、啟動模式、一鍵退出 App。
Activity 的生命周期
Activity 類中定義了七個回調方法,覆蓋了其生命周期的每一個環節。
- onCreate(),創建時調用。
- onStart(),由不可見變為可見時調用。
- onResume(),準備好顯示時調用。
- onPause(),系統準備去啟動或恢復另一個 Activity 時調用。
- onStop(),完全不可見時調用。
- onDestroy(),被銷毀之前調用。
- onRestart(),重新啟動時調用。
以上七個方法中除了 onRestart() 方法,其他都是兩兩相對的,從而又可以將活動分為三種生存期。
- 完整生存期,onCreate() 和 onDestory() 之間。
- 可見生存期,onStart() 和 onStop() 之間。
- 前臺生存期,onResume() 和 onPause() 之間。
加深對 Activity 生命周期的理解,可以看看下面這篇文章。
- 兩分鐘徹底讓你明白Android Activity生命周期(圖文)
Activity 的啟動模式
Android 是使用返回棧來管理 Activity 的。Activity 有四種啟動模式,可以在 AndroidManifest.xml 中通過給 activity 標簽增加 launchMode 屬性來選擇啟動模式。
- standard,默認啟動模式,系統不管此 Activity 是否已經在返回棧中存在,每次啟動 Activity 都會創建該 Activity 的一個新的實例。
- singleTop,在啟動 Activity 時,如果發現返回棧的棧頂是該 Activity,則直接使用她,不會再創建新的實例;如果棧頂不是該 Activity,則會創建新的實例。
- singleTask,在啟動 Activity 時,如果找到返回棧中已經存在該 Activity,則直接使用,并將這個 Activity 之上的所有 Activity 全部出棧;如果沒找到,則會創建新的實例。
- singleInstance,會啟用一個新的返回棧來管理這個活動,并保證不再有其他 Activity 的實例進入。
加深對 Activity 啟動模式的理解,可以看看下面這篇文章。
- 基礎總結篇之二:Activity的四種launchMode
一鍵退出
如果在操作一個 App 時已經進入了好幾個界面,想退出的時候可能需要按好幾次 Back 鍵才行。書中給出了一個很不錯的方案。
- 新建一個 ActivityCollector 類 作為 Activity 管理器,代碼如下:
- 創建一個 BaseActivity 繼承 Activity,重寫 onCreate()、onDestroy() 方法,代碼如下:
public class BaseActivity extends Activity {
@Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);ActivityCollector.addActivity(this);}@Overrideprotected void onDestroy(){super.onDestroy();ActivityCollector.removeActivity(this);}}
-
在所有的 Activity 中繼承 BaseActivity
-
在需要一鍵退出的地方調用 ActivityCollector.finishAll()
其它(Miscellaneous)
盡管我試圖在本文中盡量完整的進行描述,但受限于篇幅和我的個人水平,本文難免有所遺漏,歡迎在評論中指出。
如果您覺得閱讀本文對您有幫助,請點一下“推薦”按鈕,您的“推薦”將是我最大的寫作動力!
關于作者(About Me)
addict
原文鏈接:http://www.cnblogs.com/DebugLife/p/4351970.html
總結
以上是生活随笔為你收集整理的Android Studio 单刷《第一行代码》系列 04 —— Activity 相关的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android Studio 单刷《第一
- 下一篇: Android Studio 单刷《第一