私はAndroidゲームを構築しています。現在、ユーザー状態のすべての変更 (SQLite での一致、SharedPreferences でのユーザー設定、およびファイル内のその他のデータ) をonDestroy()
メイン フラグメントのメソッドに保存しています (そのフラグメントは常に有効であり、他のアクティビティを開くことができます。アカウントフラグメントまたは再生フラグメントとして)。
[戻る] ボタンを使用してアプリを終了するとonDestroy()
、メイン フラグメントが呼び出されるため、すべて正常に動作します。
問題は、ホームボタンで終了するとき、またはメインフラグメントが OS から強制終了されるときです。このような場合、onDestroy()
は呼び出されないため、ゲームの状態は保存されません。
ゲームを のonPause()
代わりにに保存するonDestroy()
と、常に呼び出されるため、解決できることはわかっています。しかし、私の場合、ストレージ操作は非常に大きく (SQLite + SharedPreferences + ファイル、大量のデータ)、onPause()
非効率的です。
これを管理する他の方法はありますか?