2010-03-15 33 views
1

我的問題是關於在使用「後退」按鈕回到活動時恢復複雜的活動相關數據。 活動A有一個連接到ArrayAdapter的ListView作爲其數據源 - 這發生在onCreate()中。Android:按「後退」按鈕時如何恢復列表數據?

  1. 默認情況下,如果我移動到活動B並按下「返回」以返回到活動A,我的列表是否保持與所有數據完好無損,或者只是獲得了屏幕的可視「複製」丟失了嗎?
  2. 當涉及多項活動時,我該怎麼辦?假​​設活動A開始活動B,它開始活動C,然後我按兩次「返回」到達A.如何確保A的完整性數據回到前臺? PrefsManager似乎並不直觀地處理複雜的對象。

謝謝,羅布

回答

1

活性A具有一個ListView是 連接ArrayAdapter用作 其數據源

注意,一個ArrayAdapter不是持久存儲中。

默認情況下,如果我移動到活動B ,然後按「返回」回到 活動A,請問我的名單留在所有的數據完整 還是我剛剛得到的 視覺上的「複製」屏幕但 數據丟失?

這取決於。

通常,Activity A沒有去過任何地方。但是,如果用戶長時間離開應用,則Android可能會銷燬Activity A,在活動堆棧中留下佔位符以釋放內存。如果稍後用戶按BACK,則Android將重新創建Activity答。在這種情況下,您需要使用持久存儲(文件,數據庫等)或使用onSaveInstanceState()onRestoreInstanceState()來掛起數據。

您可以在活動類描述的Activity Lifecycle部分找到更多信息。

+0

非常感謝您的回覆。 – Rob 2010-03-16 07:25:29

0

除非你主動finish()活動A,當您啓動活動B,它的數據和狀態都將當你有多少活動疊加起來返回不管它,存在。

+0

這不一定是正確的。 Android可能會選擇銷燬該活動以釋放RAM以進行其他處理。 – CommonsWare 2010-03-15 15:02:21

+0

謝謝你的回覆,David。 – Rob 2010-03-16 07:25:00