我有一個片段,它們將用戶數據保存在onSaveInstanceState方法中。 當用戶完成活動並將其顯示在下一個意圖中時,我需要獲取此數據。 目前我執行的順序是:片段的onSaveInstanceState後做工作
- 用戶點擊關閉按鈕
- 計算開始依靠儲存在的onSaveInstanceState的分組呼叫的數據,然後開始新的意圖
- 當前片段的onSaveInstanceState被調用,信息錯過在計算
- 新的活動顯示
- 老Activitys的onDestroy被稱爲
我想到了開始我的計算和onDestroy中的新活動。然後我需要一個機制來銷燬當前的活動。 或者我可以以某種方式在進行計算之前調用當前線程中所有剩下的onSaveInstanceState方法調用。 什麼會更好或有更好的方法?
你實際存儲(我的意思是一個長期的過程)數據在你的數據庫或任何onSaveInstanceState()?我沒有得到你的意思是「關閉所有交互式UI元素的onClickListeners」? – for3st
儲存不是一個漫長的過程。起初,我在每個交互式UI元素的onClickListeners中做了存儲。我需要存儲每個片段的用戶輸入,以便以後在另一個會話中進行檢索。如果應用程序進入後臺並且設備內存不足,則出現問題。這將刪除所有類的元素。 onSaveInstanceState和onCreate(SavedBundle)處理這個方便。 – user1324936
嗯,如果你在向外包中添加東西,我明白了,但是這與計算用例有什麼關係,如果用戶按下一個按鈕並開始計算,那麼你的活動被破壞的機會是零如果它對用戶仍然可見,那麼它可以安全地從onclicklistener中的輸入字段中獲取數據(在這一點上是非常實用的方法) – for3st