我正在尝试在用户插入的特定时间执行某项任务。我有两节课。
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();
}
}
答案 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();
}
};