日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android Activity 以及 Application 生命周期

發布時間:2025/5/22 Android 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android Activity 以及 Application 生命周期 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在日常開發中(對又是日常開發)。你會發現很多邏輯如果只有onCreate和onDestory完全不夠用。所以稍微系統的了解一下Activity生命周期的相關知識,也很有必要。

本篇簡單學習Android Activity生命周期的相關知識。

Activity

Android 中所有的Activity都是由Activity棧來進行管理的。當切換到一個新的Activity時候,此Activiy會被壓到棧頂部,之前的Activity會被壓到棧底。

Activity的生命周期,可以從下方流程圖看出。

1.1 一個Activity的完整生命周期 onCreate -> onStart -> onResume -> onPause -> onStop -> onDestory,稱之為 entire lifetime.

2.2 當執行onStart回調方法的時候,Activity開始被用戶所見。所以在onCreate的時候用戶是看不到的,一直到onStop之前,此Activity都是可以被用戶看到的。此階段稱之為 visible lifetime.

3.3 當執行onResume回調方法的時候,Activity可以開始和用戶交互,一直到onPause方法之前。此階段稱之為foreground lifetime.

注:

  • onPause , 雖然Activity還是可見的 但大多數時候意味著用戶即將離開這個Activity.所以在onPause中,你可以用來 1.停止運行的浪費cpu的操作 2.提交沒有保存的修改 3.釋放系統資源

  • onDestroy ,應該清除那些可能導致內存泄漏的地方。并且確保所有線程都被destroyed并且所有操作都被停止。

Activity 操作

1.1 從 A Activity 到 B Activity,

打開 A Activity

A onCreate -> A onStart -> A onResume

2.2 點擊切換Activity按鈕,

A onPause -> B onCreate -> B onStart -> B onResume -> A onStop

如果點擊 back 按鈕,依次降執行

B onPause -> A onRestart -> A onStart -> A onResume -> B onStop -> B onDestroy

B Activity從站頂彈出并銷毀,此時 Activity 堆棧只有 A Activity。

3.3 如果再次點擊 back 按鈕

則執行 A onPause -> A onStop -> A onDestroy

4.4 如果點擊的是 home 按鈕

則執行 A onPause -> A onStop

注:

  • Android手機,開發者選項中有一個不保留活動的設置。從A Activity -> B Activity 會執行 A onDestroy,但是 A Activity還是處在Activity棧中。

  • 點擊back 按鈕 依次執行 B onPause -> A onCreate -> A onStart -> A onResume -> B onStop -> B onDestroy

finish()

finish()方法主要有兩層含義

  • 將此Activity移除Activity棧

  • 調用此Activity的onDestroy

Tips:onBackPressed 默認實現是調用 finish()

Application

Application:

Base class for those who need to maintain global application state. You can
provide your own implementation by specifying its name in your
AndroidManifest.xml's <application> tag, which will cause that class
to be instantiated for you when the process for your application/package is created.

一個為保存全局變量設計的基本類。

public class App extends Application {@Overridepublic void onCreate() {// 程序創建的時候執行super.onCreate();}@Overridepublic void onTerminate() {// 程序終止的時候執行super.onTerminate();}@Overridepublic void onLowMemory() {// 低內存的時候執行super.onLowMemory();}@Overridepublic void onTrimMemory(int level) {// 程序在內存清理的時候執行super.onTrimMemory(level);}@Overridepublic void onConfigurationChanged(Configuration newConfig) {// 程序配置信息改變的時候執行super.onConfigurationChanged(newConfig);}}

onCreate:程序創建的時候初始化

onTerminate:這個方法在程序結束的時候會調用。但是這個方法只用于Android仿真機測試的時候,在Android產品機是不會調用的。所以這個方法并沒什么用。

This method is for use in emulated process environments.

onLowMemory:監聽Android系統整體內存比較低的時候,來釋放一些不重要的資源,清理一下垃圾。

onTrimMemory(int level): level相當于一個權重,可以根據權重的值來做出相應的操作。int值越小越重要,int包括 5,10,15,20,40,60,80

Called when the operating system has determined that it is a good time for a process to trim unneeded memory from its process.

onConfigurationChanged:監聽一些配置信息發生改變的事件(屏幕旋轉),當配置信息發生改變的時候會調用這個方法

Tips:activity的configChanges,手機橫豎屏切換的時候如果activity沒有配置,activity會重啟,而且不止一次。為了防止這種情況就需要用到configChanges。

// 橫豎屏切換時就不會重新創建activity,還有很多其他配置參數`mmc`,`mnc` android:configChanges="orientation"

轉載于:https://www.cnblogs.com/chenjy1225/p/9662272.html

總結

以上是生活随笔為你收集整理的Android Activity 以及 Application 生命周期的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。