2

私はAndroidゲームを構築しています。現在、ユーザー状態のすべての変更 (SQLite での一致、SharedPreferences でのユーザー設定、およびファイル内のその他のデータ) をonDestroy()メイン フラグメントのメソッドに保存しています (そのフラグメントは常に有効であり、他のアクティビティを開くことができます。アカウントフラグメントまたは再生フラグメントとして)。

[戻る] ボタンを使用してアプリを終了するとonDestroy()、メイン フラグメントが呼び出されるため、すべて正常に動作します。

問題は、ホームボタンで終了するとき、またはメインフラグメントが OS から強制終了されるときです。このような場合、onDestroy()は呼び出されないため、ゲームの状態は保存されません。

ゲームを のonPause()代わりにに保存するonDestroy()と、常に呼び出されるため、解決できることはわかっています。しかし、私の場合、ストレージ操作は非常に大きく (SQLite + SharedPreferences + ファイル、大量のデータ)、onPause()非効率的です。

これを管理する他の方法はありますか?

4

1 に答える 1

0

このソリューションを試しましたか - http://nisha113a5.blogspot.com/2012/01/intercept-home-key-android.html ?

ホームボタンの押下をフックして、この時点でユーザー状態を保存してみてください。

于 2013-05-16T13:36:01.260 に答える