1

Android アプリには、確実に永続的に保存したいかなり少量の状態があります。それは小さく、約50文字で記録されます。

Android Storage Options pageを見ると、いくつかの選択肢があり、最も単純なものは共有設定のようです。現在、これらは実際にはアプリケーションの設定ではなく、アプリケーションがどこにあるかを簡単に示しています。

私が心配しているのは、設定が頻繁に変更されないことが予想されるため、ユースケースで多くの変更を処理できない可能性があることです。多くの場合、ユーザーのアクティビティに応じて、1 秒あたり約 1 回のピークを意味します。

そこで、2つのことを確認したいと思います。


1 つ目は、上記のリンク先のページにあるサンプル コードのonStopメソッドに設定が記述されていることです。何があっても、アプリケーションが終了したときにこれが実行されることが保証されていますか?

もしそうなら、私は状態をメモリ内に維持し、それを使用して永続的に保存することができます。そうすれば、この更新頻度の問題はなくなります。

基本的に、状態を保存せずにアプリケーションを停止できないようにしたいと考えています (もちろん、壊滅的な障害は除きます)。

それ以外の場合は、何も失わないように、この状態が変化するたびに保存したいと思います。


第二に、これは、状態が変化するたびに状態を保存する必要がある場合にのみ重要です.1秒に1回まで設定を保存することの欠点はありますか? 前述のように、頻繁な更新用に設計されているかどうかはわかりません。

4

1 に答える 1

1

アプリケーションが正常に終了すると、onStop()が呼び出されます。アプリケーションがバックグラウンドで実行されている場合 (つまり、ホーム ボタン/呼び出されている場合)onPause()が呼び出され、これが を呼び出しますonStop()。アプリケーションが (つまり、戻るボタンで) 終了する場合、onPause()が呼び出され、これが を呼び出しonStop()、 がを呼び出しonDestroy()ます。ただし、アプリケーションがクラッシュした場合 (つまりnullpointerExceptiononStop()が呼び出されない場合、アプリケーションはクラッシュするだけです)。

個人的には、私は主にsettingsContainerObjectある種の を使用し、onStop()メソッドの内部ストレージに好みを書き込むだけです。かなりうまく機能します。

要するに、はい、onStop()アプリケーションがバックグラウンドまたは終了するときに常に呼び出されます。

アプリケーションをtry/catchブロック単位で停止して、設定を常に保存することもできます。

于 2012-09-24T08:18:40.003 に答える