我有一个BOOT_COMPLETED接收器,在手机启动后成功调用。 但是,我试图在Boot-Receiver的onReceive方法中启动一个新的Broadcast Intent,但是它无效:
public class BootCompletedReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
//ObservableObject.getInstance().updateValue(intent);
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Intent dayCheckIntent = new Intent(context, DayCheckReceiver.class);
PendingIntent dayCheckAlarmIntent = PendingIntent.getBroadcast(context, 2000000000, dayCheckIntent, 0);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, 6);
calendar.set(Calendar.MINUTE, 1);
if (calendar.before(Calendar.getInstance()) || calendar.equals(Calendar.getInstance())) {
calendar.add(Calendar.DATE, 1);
}
alarmManager.setExact(AlarmManager.RTC, calendar.getTimeInMillis(), dayCheckAlarmIntent);
}
}
我还想知道,如果可能的话,在Boot-Broadcast中调用一个ObservableObject的updateValue(),然后调用MainActivity方法,而不运行App?
修改
我发现,如果我在重新启动之前不通过任务管理器销毁应用程序,它就有效。但是,如果我清空任务管理器,它不起作用(我认为onreceive我仍称为tho,因为我测试了它的通知。它似乎没有执行新的警报)