Android:从BOOT_COMPLETED接收器

时间:2017-09-02 04:08:11

标签: android broadcastreceiver broadcast

我有一个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,因为我测试了它的通知。它似乎没有执行新的警报)

0 个答案:

没有答案