欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Activity生命周期

系統(tǒng) 1668 0

Activity有三個狀態(tài):當(dāng)它在屏幕前臺時(位于當(dāng)前任務(wù)堆棧的頂部),它是激活或運行狀態(tài)。它就是響應(yīng)用戶操作的Activity。 當(dāng)它上面有另外一個Activity,使它失去了焦點但仍然對用戶可見時,它處于暫停狀態(tài)。在它之上的Activity沒有完全覆蓋屏幕,或者是透明的,被暫停的Activity仍然對用戶可見,并且是存活狀態(tài)(它保留著所有的狀態(tài)和成員信息并保持和窗口管理器的連接)。如果系統(tǒng)處于內(nèi)存不足時會殺死這個Activity。當(dāng)它完全被另一個Activity覆蓋時則處于停止?fàn)顟B(tài)。它仍然保留所有的狀態(tài)和成員信息。然而對用戶是不可見的,所以它的窗口將被隱藏,如果其它地方需要內(nèi)存,則系統(tǒng)經(jīng)常會殺死這個Activity。


當(dāng)Activity從一種狀態(tài)轉(zhuǎn)變到另一種狀態(tài)時,會調(diào)用以下保護(hù)方法來通知這種變化:

void onCreate(Bundle savedInstanceState)
void onStart()
void onRestart()
void onResume()
void onPause()
void onStop()
void onDestroy()

這七個方法定義了Activity的 完整生命周期 。實現(xiàn)這些方法可以幫助我們監(jiān)視其中的三個嵌套生命周期循環(huán):

Activity的完整生命周期自第一次調(diào)用onCreate()開始,直至調(diào)用onDestroy()為止。

Activity在onCreate()中設(shè)置所有“全局”狀態(tài)以完成初始化,
而在onDestroy()中釋放所有系統(tǒng)資源。

例如,如果Activity有一個線程在后臺運行從網(wǎng)絡(luò)下載數(shù)據(jù),它會在onCreate()創(chuàng)建線程,而在 onDestroy()銷毀線程。

Activity的 可視生命周期 自onStart()調(diào)用開始直到相應(yīng)的onStop()調(diào)用結(jié)束。在此期間,用戶可以在屏幕上看到Activity,
盡管它也許并不是位于前臺或者也不與用戶進(jìn)行交互。在這兩個方法之間,我們可以保留用來向用戶顯示這個Activity所需的資源。
例如,當(dāng)用戶不再看見我們顯示的內(nèi)容時,我們可以在onStart()中注冊一個BroadcastReceiver來監(jiān)控會影響UI的變化,而在onStop ()中來注消。onStart() 和 onStop() 方法可以隨著應(yīng)用程序是否為用戶可見而被多次調(diào)用。

Activity的 前臺生命周期 自onResume()調(diào)用起,至相應(yīng)的onPause()調(diào)用為止。在此期間,Activity位于前臺最上面并與用戶進(jìn)行交互。
Activity會經(jīng)常在暫停和恢復(fù)之間進(jìn)行狀態(tài)轉(zhuǎn)換——例如當(dāng)設(shè)備轉(zhuǎn)入休眠狀態(tài)或者有新的Activity啟動時,將調(diào)用onPause() 方法。
當(dāng)Activity獲得結(jié)果或者接收到新的Intent時會調(diào)用onResume() 方法。

Activity的 onSaveInstanceState() 和 onRestoreInstanceState()并不是生命周期方法,它們不同于 onCreate()、onPause()等生命周期方法,它們并不一定會被觸發(fā)。
當(dāng)應(yīng)用遇到意外情況(如:內(nèi)存不足、用戶直接按Home鍵) 由系統(tǒng)銷毀一個Activity時,onSaveInstanceState()才會被調(diào)用
但是當(dāng)用戶主動去銷毀一個Activity時,例如在應(yīng)用中按返回鍵,onSaveInstanceState()就不會被調(diào)用。因為在這種情況下,
用戶的行為決定了不需要保存Activity的狀態(tài)。通常onSaveInstanceState()只適合用于保存一些臨時性的狀態(tài),而onPause()適合用于數(shù)據(jù)的持久化保存。
另外,當(dāng)屏幕的方向發(fā)生了改變, Activity會被摧毀并且被重新創(chuàng)建,如果你想在Activity被摧毀前緩存一些數(shù)據(jù),并且在Activity被重新創(chuàng)建后恢復(fù)緩存的數(shù)據(jù)。
可以重寫Activity的 onSaveInstanceState() 和 onRestoreInstanceState()方法,如下:
public class PreferencesActivity extends Activity {
private String name;
protected void onRestoreInstanceState(Bundle savedInstanceState) {
name = savedInstanceState.getString("name"); //被重新創(chuàng)建后恢復(fù)緩存的數(shù)據(jù)
super.onRestoreInstanceState(savedInstanceState);
}
protected void onSaveInstanceState(Bundle outState) {
outState.putString("name", "liming");//被摧毀前緩存一些數(shù)據(jù)
super.onSaveInstanceState(outState);
}
}

Activity生命周期


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 中文字幕日韩亚洲 | 中文在线观看免费视频 | 日产国产精品久久久久久 | 国产视频网站在线观看 | 黄色视屏免费看 | 欧美特黄一级视频 | 亚洲国产欧美在线人网站 | 亚洲狠狠爱 | 久久久久久影院 | 亚洲色图综合 | 日韩精选视频 | 国产精品a在线观看香蕉 | 色之综合天天综合色天天棕色 | 精品国产18久久久久久二百 | 久久欧美精品1024你懂得 | 大伊香蕉在线精品不卡视频 | 伊人狠狠丁香婷婷综合色 | 日本粉嫩一区二区三区视频 | 久草视频免费看 | 亚洲欧美一区二区三区另类 | 久久中文字幕久久久久91 | 正在播放国产无套露脸 | 天天操网| 东京不太热在线新视频 | 亚洲精品久久久久一区二区三区 | 黄色影片在线免费观看 | 97骚碰| 国产一区二区精品丝袜 | www.亚洲在线 | 亚洲人人精品 | 青青草免费观看完整版高清 | 美女高潮网站 | 欧美精品第一区 | 激情视频网站 | 久久亚洲私人国产精品 | 夜夜爽夜夜叫夜夜高潮漏水 | 久久久精品在线观看 | 日韩欧美动作影片 | www.夜色.com| 亚洲jizzjizz妇女 | 成人午夜精品视频在线观看 |