我有這個列表視圖被填充從互聯網下載的數據。 因此,在onCreate()方法中,我將運行異步任務以下載信息並將其放入列表視圖中。在Android中存儲狀態
我在saveInstanceState()方法中放置了一個布爾值來判斷列表是否被下載,如果用戶從主頁按鈕退出應用程序並返回,這將工作。但是,當用戶通過後退按鈕退出程序時,saveInstanceState()方法不會運行。
我不想再次下載清單,我該如何檢查是否以前下載過?
我有這個列表視圖被填充從互聯網下載的數據。 因此,在onCreate()方法中,我將運行異步任務以下載信息並將其放入列表視圖中。在Android中存儲狀態
我在saveInstanceState()方法中放置了一個布爾值來判斷列表是否被下載,如果用戶從主頁按鈕退出應用程序並返回,這將工作。但是,當用戶通過後退按鈕退出程序時,saveInstanceState()方法不會運行。
我不想再次下載清單,我該如何檢查是否以前下載過?
你可以重載Activity.onBackPressed()並在那裏保存你的狀態。
此外,您還可以做
void onPause() {
if(isFinishing()) {
// save your state. maybe you'd be better off with using preferences (or other things suggested by people here), so you don't need to worry about the instance state.
}
}
如果你想保持數據超出應用程序的生命週期,就需要將其保存在包外。
你options是:
我會建議一個私人的內部存儲文件來保存您的數據。
檢查了這一點:實施生命週期回調 http://developer.android.com/guide/topics/fundamentals/activities.html
使用回調得到注意發生了什麼你的活動,如果nesseceray反應。
可以使用共享偏好存儲鍵值數據: http://developer.android.com/guide/topics/data/data-storage.html
你肯定的是,當應用程序重新啓動時,束將被載入?我不確定它會 – Spidy
嗯,我不確定。我想你必須嘗試一下。順便說一句,我只是有另一個想法,我將在上面的答案。 – Macondo2Seattle