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

歡迎訪問 生活随笔!

生活随笔

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

Android

Android组件系列----Activity的生命周期

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

【聲明】

歡迎轉載,但請保留文章原始出處→_→

生命壹號:http://www.cnblogs.com/smyhvae/

文章來源:http://www.cnblogs.com/smyhvae/p/3856555.html

?

【正文】?

一、Activity的生命周期:

解釋如下:

? ? ? activity啟動的時候:onCreate ---> onStart ---> onResume.
? ? ? 為了方便說明這里把當前activity稱為MainActivity,其他的activity稱為SecondActivity、ThirdActivity等等。
? ? ? 通過上圖的我們可以看出activity從running狀態跳轉到onPause狀態的原因是:Another activity comes into the foreground. 也就是說有另外一個actvity被啟動并運行了,比如說MainActivity通過startActivity啟動了SecondActivity,那么SecondActivity就在ui視圖的最頂層了,而MainActivity不再是最頂層的activity了,此時就會onPause了,此時我們依稀還能看到MainActivity,只是MainActivity已經站在他人之后了。

? ? ? 而當MainActivity完全被SecondActivity擋住,完全看不見的時候,此時MainActivity就會onStop了。我們看看上圖從onPause到onStop的原因是:the activity is no longer visiable. 也就是說此時MainActivity完全不可見了,從這里我們可以猜測當按下home鍵的時候,當前activity就會處于onStop的狀態。
從actvitiy的生命周期圖中,我們可以看出activity是可以停留在onPause和onStop在這兩個狀態上的,因為可以相應的恢復。

? ? ? 當在MainActivity中按back鍵,退出時,最終就會走到onDestory,或者在代碼中調用finish()的時候也會走到onDestroy這一步。

? ? ? 當MainActivity處于onPause和onStop狀態時,當更高優先級的apps需要內存,而此時系統內存不夠了,那么android系統就會將MainActivity所在的進程給殺了以釋放資源。當然被殺了之后,想重生,那必須得從頭來過: onCreate ---> onStart() ---> onResume().

?

二、成對兒的生命周期函數:(相同的顏色表示一對)

? ? ?繪制表格如下:

生命周期函數

調用時機

舉例

onCreate

在Activity對象被第一次創建時調用

買車

onStart

當Activity變得可見時調用

打火,啟動

onResume

當Activity開始準備和用戶交互時調用

踩油門,驅動汽車前進

onPause

當系統即將啟動另外一個Activity之前調用

松開油門

onStop

當前Activity變得不可見時調用

熄火

onDestroy

當前Activity被銷毀之前調用

車輛報廢

onRestart

當一個Activity再次啟動之前調用

?

?

?

?

?

?

?

?

?

?

?

?

???

? ?

?

? ? ? ?一個Activity的對象的生命周期可類比于人的生命周期。一個階段將調用對應的生命周期函數,即每個階段需要做每個階段應該做的事。

注意:生命周期函數是由系統調用的。開發人員只需要復寫函數中的內容即可。

?

三、Activity對象的狀態:

Resumed:Activity對象出于運行狀態。

Paused:另一個Activity位于前端,但是本Activity還可見。

Paused狀態常用于:另一個Activity為對話框,彈出來之后只占據了屏幕的一小部分;但后面的Activity還是可見的,但是處于paused狀態。

注:一個Activity出于paused狀態時,系統并不會釋放資源。釋放資源你的操作要靠開發者來完成。

Stopped:另一個Activity位于前端,完全遮擋本Activity。

?官方文檔解釋如下:

Managing the Activity Lifecycle

Managing the lifecycle of your activities by implementing callback methods is crucial to developing a strong and flexible application. The lifecycle of an activity is directly affected by its association with other activities, its task and back stack.

An activity can exist in essentially three states:

Resumed
The activity is in the foreground of the screen and has user focus. (This state is also sometimes referred to as "running".)
Paused
Another activity is in the foreground and has focus, but this one is still visible. That is, another activity is visible on top of this one and that activity is partially transparent or doesn't cover the entire screen. A paused activity is completely alive (the?Activity?object is retained in memory, it maintains all state and member information, and remains attached to the window manager), but can be killed by the system in extremely low memory situations.
Stopped
The activity is completely obscured by another activity (the activity is now in the "background"). A stopped activity is also still alive (the?Activity?object is retained in memory, it maintains all state and member information, but isnot?attached to the window manager). However, it is no longer visible to the user and it can be killed by the system when memory is needed elsewhere.

If an activity is paused or stopped, the system can drop it from memory either by asking it to finish (calling its?finish()?method), or simply killing its process. When the activity is opened again (after being finished or killed), it must be created all over.

四、舉一個實例:

? ? ? 現在有兩個Activity,當用戶點擊當前默認的MainActivity中的按鈕后,會跳到SecondActivity。生命周期如下:

啟動默認Activity時:

MainActivity:onCreate

MainActivity:onStart

MainActivity: onResume

點擊按鈕后,跳到SecondActivity:MainActivity被保留至棧底)

MainActivity:onPause

SecondActivity:onCreate

SecondActivity:onStart

SecondActivity: onResume

MainActivity: onStop

按返回菜單后,回到MainActivity:SecondActivity被銷毀)

SecondActivity: onPause

MainActivity:onRestart

MainActivity:onStart

MainActivity: onResume

SecondActivity: onStop

SecondActivity: onDestroy

?

參考鏈接:http://www.cnblogs.com/hibraincol/archive/2012/03/06/2382120.html

?

我的公眾號

?

想學習代碼之外的軟技能?不妨關注我的微信公眾號:生命團隊(id:vitateam)。

?

掃一掃,你將發現另一個全新的世界,而這將是一場美麗的意外:

?

?

總結

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

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