欧美三区_成人在线免费观看视频_欧美极品少妇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條評論
主站蜘蛛池模板: 免费亚洲视频在线观看 | 国产精品久久久久久久免费 | 欧美色综合天天久久综合精品 | 欧美精品一区三区 | 日本黄在线观看 | 免费一级在线 | 国产在线精品一区 | 日韩久久综合 | 波多野结衣手机在线播放 | 日韩经典欧美一区二区三区 | 国产精品国产亚洲精品不卡 | 韩国久久久久无码国产精品 | 国产青青视频 | 亚洲ci网 | 天堂在线免费视频 | 亚洲成人福利在线观看 | 国产激情偷乱视频一区二区三区 | 成人无码髙潮喷水A片 | 在线精品小视频 | 成人性生交A片免费看麻豆 色倩网站 | 日韩免费视频 | 在线中文一区 | 欧美区在线| 欧美日韩欧美日韩 | 九九亚洲精品 | 欧美高清成人 | 久久精品亚洲精品 | 国产午夜精品一区二区三区嫩草 | 97人人澡人人爽91综合色 | 日韩黄色一级大片 | 日本无卡码免费一区二区三区 | 五月缴情 | 国产亚洲精品综合在线网址 | 一二三区免费视频 | 波多野衣结在线精品二区 | 国产精品中文字幕在线观看 | 久久综合九色综合97婷婷群聊 | 日韩免费一区二区 | 日韩精品一区二区三区第95 | 清纯唯美亚洲综合激情 | free-porn-ok.com|