AlarmManager在给定时间没有调度任务

时间:2014-11-26 12:52:25

标签: android alarmmanager android-alarms

我正在尝试在用户插入的特定时间执行某项任务。我有两节课。

1。 AddTiminigs
   2. TimeReceiver

OnCreate的{​​{1}}中,我做了类似的事情:

AddTimings

然后,在某些动作上,我这样做:

manager = (AlarmManager)getActivity().getSystemService(getActivity().ALARM_SERVICE);

Intent alarmIntent_on = new Intent(getActivity(), MuteMeReceiver.class);
alarmIntent_on.putExtra("id", MUTE_ON);
pendingIntent_on = PendingIntent.getBroadcast(getActivity().getApplicationContext(), MUTE_ON, alarmIntent_on, 0);

这是我的“manager.setRepeating(AlarmManager.RTC_WAKEUP, startTimeInMilis, AlarmManager.INTERVAL_DAY, pendingIntent_on); ”:

TimeReceiver

问题在于,在添加时间之后,它并不打扰开始时间是什么,它只是去接收器而不是在我提到的时间执行任务。时间以毫秒为单位,这没关系。

修改 我正在使用TimePicker作为starttime。这是我的代码:

@Override
public void onReceive(Context context, Intent incomingPendingIntent) {

    muteStatus = incomingPendingIntent.getIntExtra("id", AddTimeFragment.MUTE_ON);

    if(muteStatus == AddTimeFragment.MUTE_ON){

        Toast.makeText(context, "GENERAL", Toast.LENGTH_SHORT).show();

    }

}

1 个答案:

答案 0 :(得分:1)

更改您的listenerForStartTime代码,如下所示。你错误地给了开始时间。你不应该给剩余的时间。你应该给出确切的时间。

private TimePickerDialog.OnTimeSetListener listenerForStartTime =new TimePickerDialog.OnTimeSetListener() {
    public void onTimeSet(TimePicker view, int selectedHour, int selectedMinute) {

        if(selectedHour < 12) {
            am_pm = "AM";
        } else {
            am_pm = "PM";
        }
        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(System.currentTimeMillis());
        calendar.set(Calendar.HOUR_OF_DAY, selectedHour);
        calendar.set(Calendar.MINUTE, selectedMinute);
        startTimeInMilis = calendar.getTimeInMillis();
    }
};