0

Androidのアラームマネージャーに問題があります。毎週(1回)発生するアラームを設定するための次のコードスニペットがあります。

  // Add the time and set when the notification will be triggered
    Calendar setCalendar = item.getDate();
    calendar.set(Calendar.MINUTE,setCalendar.get(Calendar.MINUTE)+10080);

   //Create a new alarm intent
   Intent alarmIntent = new Intent(ApplicationUtils.getApplicationContext(), AlarmReceiver.class);


   PendingIntent sender = PendingIntent.getBroadcast(ApplicationUtils.getApplicationContext(), requestCode, alarmIntent, PendingIntent.FLAG_UPDATE_CURRENT);

        // Get the AlarmManager service
        AlarmManager alarmManager = (AlarmManager) context.getSystemService(context.ALARM_SERVICE);
        alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.ELAPSED_REALTIME, sender);

そして、私は次の問題をしなければなりません。週が変更されると、通知が表示され、停止することはありません。アラームが週に1回トリガーされるようにカレンダーを設定する方法を知っている人はいますか?

ありがとう、Arkde

4

2 に答える 2

1

あなたは3番目のパラメータsetRepeatingが正しくありません。これは、ミリ秒単位で繰り返されるアラーム間の間隔である必要があります。

1週間は次のようになります:1000 * 60 * 60 * 24*7。

http://developer.android.com/reference/android/app/AlarmManager.html#setRepeating(int、long、long、android.app.PendingIntent

于 2012-06-10T11:36:13.633 に答える
1

それがあなたを助けるコードをチェックしてください。

 Intent intent_for_every_second = new Intent(Activity.this, Notifier.class);
 pendingIntent_for_every_second = PendingIntent.getBroadcast(Activity.this, 0,    intent_for_every_second,0);
 AlarmManager alarmManager_for_every_second = (AlarmManager) getSystemService(ALARM_SERVICE);
  alarmManager_for_every_second.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, 1000, 1000,pendingIntent_for_every_second);
于 2012-06-10T11:45:11.367 に答える