因此,在我的應用程序中有一個用於創建新用戶的表單,其中包含有關用戶的相關詳細信息和信息。這裏沒有問題,只是當用戶離開活動時沒有按下確認按鈕就會發生什麼。Android - 生命週期和保存實例狀態問題
這就是我想做的事:
- 如果用戶按下後退按鈕,嘗試將所有數據保存到數據庫,並通知用戶。
- 如果活動被中斷(即通過電話),請將所有數據保存到臨時位置,以便當活動再次位於堆棧的頂部時,沒有任何東西看起來已經改變(但數據仍然沒有尚未保存到數據庫)。
- 如果活動在後臺處理時遇到更多資源,請執行與上述第2點相同的操作(即當活動再次啓動時,看起來沒有任何變化)。
- 如果整個應用程序再次啓動(通過再次單擊圖標),並且存在上述第2點或第3點的臨時數據,請導航到「創建用戶」活動並顯示數據,就好像沒有更改。
這裏是如何我目前正在試圖做到這一點:
- 使用
onDestroy()
和isFinishing()
功能找到活動時被打死,覆蓋上述第1點(至,然後盡力挽救所有數據)。 - 保存與
onSaveInstanceState
所有數據成束(以覆蓋上述第2點) - 是否與
onSaveInstanceState
創建的束生存活性被殺死更多的資源,因此,當其重新產生的先前的狀態可被檢索(如在點3以上)? - 不知道如何實現點4
任何幫助將大規模讚賞。
乾杯!
你確定3和4嗎?當用戶離開很長時間時,系統重置任務堆棧和清除信息是系統的標準Android行爲,無論該活動是否被終止,因此用戶期望這一點。 也許一個比打擊系統更好的計劃是減少單個屏幕上不可保存的信息數量或重新設計流量,這樣一切都可以保存onPause() - 也許有一個屏幕來創建用戶與他們的名稱,只保存點擊「創建」按鈕,然後在第二個屏幕輸入詳細信息,所有這些都可以節省onPause()。 – 2010-04-20 17:07:53
與點3和4我想我試圖複製消息應用程序時消息保存爲草稿。儘管只用用戶名和其他重要細節將信息切割成活動,但在其他頁面中使用其他選項似乎是有益的。謝謝。 – 2010-04-21 08:48:47