招生熱線
0755-86191118 0755-86191118
我的位置: 首頁 > 學習專區 > 安卓技術 > 如果后臺的Activity由于某原因被系統回收怎么辦

如果后臺的Activity由于某原因被系統回收怎么辦

2012-05-09 11:41:00
來源:
[導讀] 當你的程序中某一個Activity A 在運行時中,主動或被動地運行另一個新的Activity B這個時候A會執行Java代碼public void onSaveInstanc

當你的程序中某一個Activity A 在運行時中,主動或被動地運行另一個新的Activity B

這個時候A會執行

Java代碼

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

B 完成以后又會來找A, 這個時候就有兩種情況,一種是A被回收,一種是沒有被回收,被回

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

savedInstanceState是一個Bundle對象,你基本上可以把他理解為系統幫你維護的一個Map對象。在onCreate()里你可能會 用到它,如果正常啟動onCreate就不會有它,所以用的時候要判斷一下是否為空。

Java代碼

if(savedInstanceState != null){

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

}

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

評論
相關文章
好吊妞免费视频在线观看,久久亚洲国产人成综合网,久久精品国产2020,欧美精品综合在线
亚州911精品影院 | 日本强伦姧护士在线播放 | 五月天Av中文在线 | 亚洲成年少妇丰满网 | 日本中文字幕有码在线视频三级 | 亚洲精品A人在线观看 |