我的位置: 首頁 > 學(xué)習(xí)專區(qū) > 安卓技術(shù) > 如果后臺(tái)的Activity由于某原因被系統(tǒng)回收怎么辦

如果后臺(tái)的Activity由于某原因被系統(tǒng)回收怎么辦

2012-05-09 11:41:00
來源:
[導(dǎo)讀] 當(dāng)你的程序中某一個(gè)Activity A 在運(yùn)行時(shí)中,主動(dòng)或被動(dòng)地運(yùn)行另一個(gè)新的Activity B這個(gè)時(shí)候A會(huì)執(zhí)行Java代碼public void onSaveInstanc

當(dāng)你的程序中某一個(gè)Activity A 在運(yùn)行時(shí)中,主動(dòng)或被動(dòng)地運(yùn)行另一個(gè)新的Activity B

這個(gè)時(shí)候A會(huì)執(zhí)行

Java代碼

public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); outState.putLong(“id”, 1234567890);}

B 完成以后又會(huì)來找A, 這個(gè)時(shí)候就有兩種情況,一種是A被回收,一種是沒有被回收,被回

收的A就要重新調(diào)用onCreate()方法,不同于直接啟動(dòng)的是這回onCreate()里是帶上參數(shù)savedInstanceState,沒被收回的就還是onResume就好了。

savedInstanceState是一個(gè)Bundle對(duì)象,你基本上可以把他理解為系統(tǒng)幫你維護(hù)的一個(gè)Map對(duì)象。在onCreate()里你可能會(huì) 用到它,如果正常啟動(dòng)onCreate就不會(huì)有它,所以用的時(shí)候要判斷一下是否為空。

Java代碼

if(savedInstanceState != null){

long id = savedInstanceState.getLong(“id”);

}

就像官方的Notepad教程 里的情況,你正在編輯某一個(gè)note,突然被中斷,那么就把這個(gè)note的id記住,再起來的時(shí)候就可以根據(jù)這個(gè)id去把那個(gè)note取出來,程序就完整 一些。這也是看你的應(yīng)用需不需要保存什么,比如你的界面就是讀取一個(gè)列表,那就不需要特殊記住什么,哦, 沒準(zhǔn)你需要記住滾動(dòng)條的位置…

評(píng)論
熱點(diǎn)專題
>>
相關(guān)文章推薦
>>
好吊妞免费视频在线观看,久久亚洲国产人成综合网,久久精品国产2020,欧美精品综合在线
午夜福利成年电影在线观看 | 亚洲国产首页在线播放 | 亚洲乱码小电影AV | 日韩精品国产aV | 亚洲成色在线播放 | 日本午夜啪视频免费 |