アラームを使用してサーバーからデータを取得します。 私はユーザーにアラームの開始と停止のオプションを与えるのが好きです。 これは、アラームが既に設定されているかどうかを確認して確認する必要があることを意味します。 私はアラームがすでに設定されている場合は私に語ったいくつかのコードが見つかりました:アラームはすでに、私はそれをキャンセルしたが、それが設定されていない場合、私は(トグルのような)に設定している場合アラームを設定してリセットするAndroid AlarmManagerの問題
Intent I = new Intent(getApplicationContext(),AlarmReceiver.class);
PendingIntent P = PendingIntent.getBroadcast(getApplicationContext(), 0, I, PendingIntent.FLAG_NO_CREATE);
found = (P!=null);
を
問題はこれが一度しか働かないことです。最初のコードでは、既存のアラーム をチェックすると、アラームが発生していないことを示すnullが返されますが、アラームをキャンセルした後は、何かにポインタ が返されますが、アラームは実行されません。ここ
は、アラーム
am = (AlarmManager) getSystemService(getApplicationContext().ALARM_SERVICE);
Intent I = new Intent(getApplicationContext(),AlarmReceiver.class);
PendingIntent P = PendingIntent.getBroadcast(getApplicationContext(), 0, I, PendingIntent.FLAG_CANCEL_CURRENT);
am.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 60000, P);
を設定し、ここでアラームを解除するためのコードであるためのコードです:
am = (AlarmManager) getSystemService(getApplicationContext().ALARM_SERVICE);
Intent I = new Intent(getApplicationContext(),AlarmReceiver.class);
PendingIntent P = PendingIntent.getBroadcast(getApplicationContext(), 0, I, PendingIntent.FLAG_CANCEL_CURRENT);
am.cancel(P);
は、私はそれがPendingIntentが離れて行くのです作るためにアラームをキャンセルした後に何かをリセットするにはアム。
私は本当にわからないあなたは、アラームが既に存在するかどうかを確認するためにチェックを実行している理由。あなたの推論を説明してもらえますか? –
トグルのオン/オフとして機能するボタンが必要でした。また、アプリのクラッシュによってアラーム設定が失われた場合は、ボタンをインジケータとして使用します。ユーザーがウィジェットをクリックしたときにウィジェットを更新するためにアラームを使用して、アラームが設定されているかどうかをユーザーが確認できるアクティビティを開きます。私が恐れているのは、アラームを設定した後、電源がオフになり、ユーザーはオフであることを知らないということです。 – Kemal