我用 AlarmManager.setRepeating 设置了一个重复的回调,进程还在的时候能正常调用。
把进程杀掉后,这个定时器就不会被触发了,要怎样设置才能保证定时器会被触发
// 启动代码
void InitAlarm()
{
Intent intent = new Intent(this, AlarmReceiver2.class);
// Create a PendingIntent to be triggered when the alarm goes off
PendingIntent alarmPendingIntent = PendingIntent.getBroadcast(MainActivity.this, 10086,
intent, PendingIntent.FLAG_UPDATE_CURRENT);
// Setup periodic alarm every 5 seconds
long firstMillis = System.currentTimeMillis(); // first run of alarm is immediate
int intervalMillis = 5000; // 5 seconds
AlarmManager alarm = (AlarmManager) this.getSystemService(Context.ALARM_SERVICE);
Log.d("test", "start time alarm");
alarm.setRepeating(AlarmManager.RTC_WAKEUP, firstMillis, intervalMillis, alarmPendingIntent);
}
// 处理的回调代码
//<receiver android:process=":remote_notification" android:name="AlarmReceiver"></receiver>
@Override
public void onReceive(Context context, Intent intent) {
Log.d("", "Alarm Recieved!");
Toast.makeText(context, "onReceive click", Toast.LENGTH_SHORT).show();
}
把进程杀掉后,这个定时器就不会被触发了,要怎样设置才能保证定时器会被触发
// 启动代码
void InitAlarm()
{
Intent intent = new Intent(this, AlarmReceiver2.class);
// Create a PendingIntent to be triggered when the alarm goes off
PendingIntent alarmPendingIntent = PendingIntent.getBroadcast(MainActivity.this, 10086,
intent, PendingIntent.FLAG_UPDATE_CURRENT);
// Setup periodic alarm every 5 seconds
long firstMillis = System.currentTimeMillis(); // first run of alarm is immediate
int intervalMillis = 5000; // 5 seconds
AlarmManager alarm = (AlarmManager) this.getSystemService(Context.ALARM_SERVICE);
Log.d("test", "start time alarm");
alarm.setRepeating(AlarmManager.RTC_WAKEUP, firstMillis, intervalMillis, alarmPendingIntent);
}
// 处理的回调代码
//<receiver android:process=":remote_notification" android:name="AlarmReceiver"></receiver>
@Override
public void onReceive(Context context, Intent intent) {
Log.d("", "Alarm Recieved!");
Toast.makeText(context, "onReceive click", Toast.LENGTH_SHORT).show();
}