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