0

スタック オーバーフロー コミュニティ。

数日前から解決しようとしている問題があります。

メッセージを送受信する Android アプリケーションでサービスを実行しています。これらのメッセージについては、送受信された SMS とエラーの量を保存するカウンターがあります。たとえば、メッセージが送信されると、カウンターは +1 を追加し、合計を画面に表示します (フォーカスできない編集ビューで)。

私がもう 1 つ行っていることは、サービスをバインドすることです。これにより、必要に応じてサービスをオンまたはオフに切り替えることができます。アプリケーションの実行中はすべて正常に動作しますが、終了すると変数が失われますが、何らかの方法でメッセージをカウントし続け、ユーザーがアプリケーションを再度開いたときに値を表示する必要があります。これどうやってするの?

これらの数値やその他の構成を保存するために共有設定変数を使用してきましたが、アプリが強制終了されると、それらの数値は増加し続けることができなくなります。

アプリケーションを閉じたときに、カウンターの値をどこかに保存できますか? アプリケーションを閉じた状態で、サービスから共有設定にアクセスできますか? コンテンツ プロバイダーを使用するとどうなりますか? アプリを閉じていても、実行中のサービスからアクセスできますか?

よろしく。

4

1 に答える 1

0

サービスから共有設定にアクセスするのに問題はありません。したがって、変数をサービスの onDestroy() メソッドに保存し、それらを onCreate(); でリロードするだけです。

これは設定を取得するために機能するはずです:

Context ctx = getApplicationContext();
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx);

Android で PreferenceActivity から SharedPreferences を取得するにはどうすればよいですか?

于 2012-07-10T04:54:53.907 に答える