0

私の目的は、特定のアクティビティの onCreate が非同期タスク「BackgroundTask」の実行を開始することです。常に 1 つの BackgroundTask だけが実行されるようにしたいので、.execute を呼び出す前に、ブール値が作動して別のタスクが既に実行されていることを示しているかどうかを確認します。

アプリが現在画面に表示されていなくても、この非同期タスクが永続的に実行されることを望みます。ユーザーがボタンを押して終了するか、強制的にすべてを閉じた場合にのみ閉じる必要があります。

質問:

ホーム画面に移動したり、アプリのすべてのアクティビティの内外に移動したりしても値がリセットされないブール値を作成できますか?
Android がアプリに保存された変数をいつ、またはなぜ失うのかについて、私は十分に知りません。

4

1 に答える 1

1

このブール値は、次のように設定に保存できます。

        boolean booleanValue = true;
    String somePreferencesKey = "SOME_PREFERENCES_KEY";
    SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(context);
    pref.edit().putBoolean(somePreferencesKey, booleanValue).commit();

そして、将来いつでも、保存された設定から保存されたブール値を次のように取得できます。

        boolean booleanValue;
    String somePreferencesKey = "SOME_PREFERENCES_KEY";
    SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(context);
    booleanValue = pref.getBoolean(somePreferencesKey, false);

これで問題が解決することを願っています。

ありがとう、

モハメド。

于 2012-08-28T04:34:25.870 に答える