Android應用程序的生命週期

基本指南編程android-2

當您開始使用 C++ 或 Java 等語言進行編程時,您首先要學習的是 main 方法,即當我們啟動應用程序時操作系統將調用的方法。

在 Android 中,沒有這樣的 main 方法,但是我們的 Activity 有幾個方法,當它們發生時將由 SSOO 調用 重要事件。 在本章中,我們將深入研究這些事件是什麼以及它們是如何工作的。 一個活動的完整週期 Android。 官方文檔 對此主題進行了廣泛的解釋,在這裡我們將研究最重要的元素以及處理它們時的一些常見錯誤。

Android 的生命週期遵循以下方案:

android-生命週期

生命週期事件

  1. onCreate(捆綁)
    • 它代表了當 活動已創建。 在 Android 中創建新活動時,嚮導通常會生成此方法,並且我們將在其中創建活動所需的所有內容。 如果我們之前已將活動數據保存在 Bundle 對像中,則可以使用它來重新生成它。 一般情況下我們不會使用它。
  2. onStart()
    • 活動將前往 在屏幕上,儘管不一定可見。 如果我們從停止狀態回來,我們將首先執行 onRestart()。
  3. onRestart()
    • 當從調用 onStop() 繼續進行時,在 onStart() 之前。
  4. onResume()
    • 活動即將開始 回應互動 用戶。
  5. onPause()
    • 該活動將 停止回答 到用戶交互。
  6. onStop()
    • 活動已完全移至 背景.
  7. onDestroy()
    • 活動 即將被摧毀 及其資源的釋放。

當我們需要實現這些方法之一時,我們將通過將這些配置文件添加到我們的活動中來實現:

公共類 MyActivity 擴展 Activity { protected void onCreate(Bundle savingInstanceState) { super.onCreate(savedInstanceState); } ... } protected void onStart() { super.onStart(); ... } protected void onRestart() { super.onRestart(); ... } protected void onResume() { super.onResume(); ... } protected void onPause() { ... super.onPause(); } protected void onStop() { ... onStop(); } protected void onDestroy() { ... super.onDestroy(); } }

重要的是要保持 超類方法調用 以免發現意外。 必須維持高於我們活動的每個事件的任務。 此調用將轉到輸入事件的開頭,並轉到輸出事件的結尾。 通過這種方式,我們將避免意外,因為我們需要但不受我們控制的活動元素將在使用它們之前創建,並在使用後被銷毀。

我們不必添加所有事件,我們不需要的將使用默認實現。 我們經常使用的方法(不建議接觸其他方法)是 onCreate、onPause 和 onRestart。

onCreate 的含義很明確:它是我們加載所需資源、視圖和任何其他所需內容的地方。 對於輸出,我們唯一關注的方法是 onPause。 避免 onStop 和 onDestroy 的原因是我們無法控制它們。 onPause 會在應用程序退出前台時執行,而另外兩個將由操作系統根據需要執行。 他們可能永遠都跑不了! 這樣做是為了避免從活動到桌面(反之亦然)時一遍又一遍地創建活動的成本,並且操作系統只會在需要時釋放已使用的資源,而不必為所有資源提供服務開放流程。

這意味著我們將假設應用程序將在執行 onPause 後死亡,並且它是我們的 最後一次保存數據的機會 我們需要保存並停止我們正在使用的服務,例如地理定位。 如果我們已停止服務,則重新啟動它們的適當位置是 onRestart。

其他方法我們不需要使用太多。 我們需要它的一個常見情況是當我們集成第三方庫時,例如 Facebook 或 Flurry。 在這些情況下,我們將被要求將活動的方法綁定到其代碼。 例如,要註冊 Flurry 會話,我們將被要求在 onStart 方法中啟動會話。

一些有用的想法

  • 記住每個事件的目的。 您將始終需要 onCreate,並且經常需要 onPause 和 onResume 來停止和重新啟動最消耗的服務。
  • 不要碰其他事件 如果你不是特別需要它。
  • 不要相信 onStop 和 onDestroy, 他們可能永遠不會被稱為。 將您需要的所有內容保存在 onPause 中。
  • 避免使用非最終靜態變量。 當您返回時,應用程序仍然可以加載,並且它們將保留它們留下的值。 如果您別無選擇,只能使用它們,請務必在返回前台時重置它們的值。

更多信息 - Android編程基本指南


你對。。。感興趣:
如何在Android上刪除病毒
在 Google 新聞上關注我們

發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責數據:Actualidad Blog
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。