我正在構建一款Android遊戲。現在,我在主要片段的onDestroy()
方法中保存用戶狀態的所有更改(SQLite中的匹配,SharedPreferences中的用戶首選項以及其他文件中的數據)(該片段應始終保持活動狀態,並可打開其他活動,如賬戶片段或播放片段)。何時保存應用程序的狀態
如果我通過返回按鈕退出應用程序,一切正常,因爲onDestroy()
的主要片段被稱爲。
問題是當我通過主頁退出時,或者當主要碎片從操作系統中死亡時。在這些情況下,onDestroy()
未被調用,所以遊戲狀態不會被保存。
我知道我可以解決,如果我將遊戲保存在onPause()
而不是onDestroy()
,因爲它總是被調用。但是在我的情況下,存儲操作非常大(SQLite + SharedPreferences +文件,大量數據),並且在onPause()
中這樣做意味着效率低下。
是否有任何其他方式來管理?
當onPause()被調用時,創建一個服務傳遞意圖中的所有數據,然後執行該服務中的其餘部分。我沒有試過它只是一個想法,因爲該服務將卸載您的主要工作從活動到背景 – Neo