欧美三区_成人在线免费观看视频_欧美极品少妇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條評論
主站蜘蛛池模板: 亚洲情av | 49pao强力免费打造在线高清 | 欧美日韩中文在线视频 | 中文精品在线 | 日韩五月天 | 最新国产网址 | 精品伊人久久久大香线蕉欧美 | 丝袜天堂| 色综合欧美 | 国产视频91在线 | 午夜精品视频在线观看 | 国产亚洲欧美另类第一页 | 日本一视频一区视频二区 | 日本色图视频 | 免费国产小视频在线观看 | 亚洲精品一区二区深夜福利 | 在线婷婷 | 国产高清精品一区二区三区 | 欧美日韩色综合网站 | 日韩av片免费播放 | 亚洲欧洲在线视频 | 草久在线视频 | 乳欲人妻办公室奶水在线电影国产 | 欧美日韩免费在线观看 | 一级看片免费视频 | 一级片在线视频 | 午夜社区| 蜜臀AV性色A片在线观看 | 高清国语自产拍免费视频国产 | 色成人综合 | 不卡一区 | 亚洲午夜精品久久久久久成年 | 婷婷成人亚洲 | 我不卡在线观看 | 伊人久久99亚洲精品久久频 | 九九爱精品 | 在线视频 中文字幕 | 精品久久久久久久久久久久久久 | 91精品国产91久久久久久 | 色综合久久丁香婷婷 | 亚洲片在线观看 |