每天都有AlarmManager Android

Pau*_*aul 26 android scheduled-tasks alarmmanager

我正在努力制定一份时间表.

它应该每天下午1点或下午2点运行......

目前我只能让它每10秒或10分钟运行一次......

Intent myIntent = new Intent(AndroidAlarmService.this, MyAlarmService.class);
pendingIntent = PendingIntent.getService(AndroidAlarmService.this, 0, myIntent, 0);

AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);

Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.add(Calendar.SECOND, 10);
alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);

Toast.makeText(AndroidAlarmService.this, "Start Alarm", Toast.LENGTH_LONG).show();
Run Code Online (Sandbox Code Playgroud)

谢谢

mca*_*nti 99

此代码将在每天下午1点或2点运行Intent

Calendar calendar = Calendar.getInstance();

calendar.set(Calendar.HOUR_OF_DAY, 13); // For 1 PM or 2 PM
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
PendingIntent pi = PendingIntent.getService(context, 0,
            new Intent(context, MyClass.class),PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
                                AlarmManager.INTERVAL_DAY, pi);
Run Code Online (Sandbox Code Playgroud)

  • 您可能想要添加calendar.add(Calendar.DAY_OF_YEAR,1); 避免立即发出警报. (22认同)
  • 我已经尝试过它并且工作正常但是几天之后它就停止了并且应用程序停止触发BroadcastReceiver做任何一个你知道发生了什么 (2认同)

Vla*_*nov -10

这样每天都会报警。

alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,  AlarmManager.INTERVAL_DAY , pendingIntent);
Run Code Online (Sandbox Code Playgroud)

  • `set()` 只会触发一次。`setRepeating()` 每天都会触发。 (7认同)