3

私はAndroidプログラミングに不慣れで、アラームを設定するために使用されるアプリを開発しようとしています。システムのAlarmManager再起動時にすべてのアラームが失われるため、ユーザーが作成したすべてのアラームをを使用して保存しましたSharedPreferences

すべてのアラームを一覧表示するメインアクティビティがあります。alarm_createアラームを作成するアクティビティがあります。alarm_receiverクラスはPendingIntent、アラームが発生したときに呼び出されます。

これで、アラームに変更を加えても、アプリケーションの再開時にalarm_receiver反映されません。main_activity

アラームを保存するために、ループでアラームを取得するのに役立つキューの概念を使用しました。

問題を解決するのを手伝ってください。

4

3 に答える 3

1

私はあなたが何を望んでいるのか正確にはわかりませんが、私はそれを理解しているので、デバイスが再起動された後にアラームを再度設定したいと思います。

1)再起動をリッスンする受信機を作成します。

public class BootReciever extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {

        SharedPreferences settings = context.getSharedPreferences("YOUR SHAREDPREF NAME", 0);
        SharedPreferences.Editor editor = settings.edit();
        editor.putString("alarmName", "newAlarm");
        editor.commit(); // Don't forget to commit your changes!

   }
}

2)androidmanifest.xmlに追加します。

 <receiver android:name="com.yourpackage.BootReciever">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED"/>
        </intent-filter>
    </receiver>

3)権限を追加します。

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
于 2013-03-11T08:41:33.150 に答える
0

以下は、sharedPreferencesを保存するために使用するコードスニペットです。

 Editor prefsEditor = preferences.edit();
prefsEditor.putString(CONFIG_INFO_KEY, configInfoJson);
prefsEditor.commit();

お役に立てれば

于 2013-03-11T08:37:43.440 に答える
0

実際、SharedPreferencesはすぐには更新されず、アプリケーションの再起動時に更新されます。

残念ながら、アプリケーションの再起動はAndroidでのコーディングはそれほど簡単ではなく、アプリケーションの範囲外です。

DecodeGnomeによる上記の回答は、リストを再ロードしたり、アプリケーションのアラームをリロードしたりするために使用できます。

SQLiteDatabaseすべてのAndroidデバイスにはSQLiteDatabaseがあるため、Classに移動し、アラームをSQLiteDatabaseに保存することをお勧めします。

ここで参照コードを見ることができます。

于 2013-03-13T17:30:01.180 に答える