4

アクティビティの状態を保存することについてはたくさんの情報があるようですが、アプリケーションの状態を見つけることについて多くを見つけることができませんでした。

私は遭遇した問題を解決するためのいくつかのデザインのアイデアを探しています。私はかなり大きなデータモデル(1〜2メガバイト)を持つゲームを開発しています。このモデルはアクティビティの外部に存在します。実際、すべてがモデルと相互作用する多数のアクティビティがあります。これらの活動は一時的なものであり、常に行き来しています。

私は現在、アプリケーションにデータモデルへのポインターを保持しており、すべてのアクティビティはそれを介してデータモデルにアクセスします。アプリケーションが強制終了された場合に備えて、そのデータモデルを保存する必要がありますが、アクティビティがonPauseにヒットするたびに保存するには遅すぎます。これは、アクティビティが行き来するときに非常に頻繁に発生します。

私が必要としているのは、私のアプリケーション(およびそれとともに私のデータモデル)が破壊されていることを確認する方法です。このメソッドまたはコールバックを広範囲に検索しましたが、空になりました。

何か提案をいただければ幸いです。

4

1 に答える 1

5

アプリケーションの状態を見つけることについて、私は多くを見つけることができませんでした。

これは、Androidには「アプリケーションの状態」がなく、Webアプリにある以上のことはないためです。

ただし、アクティビティがonPauseにヒットするたびに保存するには、遅すぎます。

データモデル全体が「1〜2メガバイト」の場合もありますが、変更されるデータの量は、特定の変更に対して、そのサブセットのごく一部になります。バックグラウンドスレッドを使用し、変更されたデータのみを変更します。

これは、活動が行き来するときに非常に頻繁に発生します

活動が多すぎるようですね。

私が必要としているのは、私のアプリケーション(およびそれとともに私のデータモデル)が破壊されていることを確認する方法です

それは不可能です。あなたは自分が破壊されていることに気付くことは決してないでしょう。Androidは、ユーザーの要求(Force Close、タスクキラーなど)またはOSの理由(着信電話を処理するためにRAMが必要など)のいずれかで、警告なしにプロセスを終了できます。

を使用することは大歓迎ですonUserLeaveHint()。これは、アプリ全体がフォアグラウンドを失ったときに呼び出されることがよくありますが、データモデルを永続化することほど重要なことについては、確かにそれを当てにしません。

于 2012-08-25T12:20:32.780 に答える