私は毎日実行する必要があるアラームマネージャを作成しています。 このメソッドはMainActivity.Autで呼び出されているので、アラームは1回だけ設定する必要がありますが、常にPending intent nullを返します。 私は、それが作成された後、再びアラームを設定することなく、同じ保留中の意図を返すことを望んだ。あなたのPendingIntent
を作成中保留中のIntentは常にAlarmManagerのnullを返します
public void setAlarm() {
Intent intent = new Intent(context, BroadcastLogRaces.class);
PendingIntent pi = PendingIntent.getBroadcast(context, 99,
intent,PendingIntent.FLAG_NO_CREATE);
AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
if (pi == null) {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 19);
calendar.set(Calendar.MINUTE,00);
calendar.set(Calendar.SECOND, 00);
am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 24 * 60 * 60 * 1000, pi);
Log.i("alarme", "alarme agendado as "+ new Date().toString());
}
}
「作成した後に期待した...」 - 正確に「PendingIntent」を作成していますか?また、なぜアラームが存在しない場合にのみ設定しようとしていますか? –
@MikeM。このメソッドはMainControlのonCreateで呼び出されます –
しかし、あなたはそこに 'PendingIntent'を作成していません。 –