下午时间安排不工作:Android
我已经提出了申请,它的工作非常好 我有一个关于日程安排的问题。 我的应用程序中有一个自定义的调度程序,我使用日期和时间选择器来选择日期/时间。如果是上午时间,则工作正常,但如果是下午时间,则不工作。我花了很长时间来解决它,但没有任何想法来解决它 选择日期的代码:下午时间安排不工作:Android,android,schedule,Android,Schedule,我已经提出了申请,它的工作非常好 我有一个关于日程安排的问题。 我的应用程序中有一个自定义的调度程序,我使用日期和时间选择器来选择日期/时间。如果是上午时间,则工作正常,但如果是下午时间,则不工作。我花了很长时间来解决它,但没有任何想法来解决它 选择日期的代码: DatePickerDialog.OnDateSetListener dateEndSetListener = new DatePickerDialog.OnDateSetListener() { @Override
DatePickerDialog.OnDateSetListener dateEndSetListener = new DatePickerDialog.OnDateSetListener()
{
@Override
public void onDateSet(DatePicker view, int year, int month, int date)
{
mDay = date;
mMonth = month;
mYear = year;
}
};
Calendar c = Calendar.getInstance();
DatePickerDialog datePickerDialog = new DatePickerDialog(getActivity(), dateEndSetListener, c.get(Calendar.YEAR), c.get(Calendar.MONTH), c.get(Calendar.DAY_OF_MONTH));
datePickerDialog.show();
选择时间的代码
TimePickerDialog.OnTimeSetListener timeEndSetListener = new TimePickerDialog.OnTimeSetListener()
{
public void onTimeSet(TimePicker view, int hourOfDay, int minute)
{
mHour = hourOfDay;
mMinut = minute;
}
};
Calendar c = Calendar.getInstance();
TimePickerDialog timePickerDialog = new TimePickerDialog(getActivity(), timeEndSetListener, c.get(Calendar.HOUR_OF_DAY), c.get(Calendar.MINUTE), false);
timePickerDialog.show();
安排假呼叫的代码
AlarmManager am=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(context, AlarmManagerForSchedullingCallBrodcastReceiver.class);
PendingIntent pi = PendingIntent.getBroadcast(context, 0, intent, 0);
Calendar time = Calendar.getInstance();
time.set(Calendar.DAY_OF_MONTH, date);
time.set(Calendar.MONTH, month);
time.set(Calendar.YEAR, year);
time.set(Calendar.HOUR, hour);
time.set(Calendar.MINUTE, minut);
time.set(Calendar.SECOND, 0);
am.set(AlarmManager.RTC_WAKEUP, time.getTimeInMillis(), pi);
非常感谢你的帮助。。谢谢我找到了解决我自己问题的办法 我将代码块A更改为代码块B,如下所示: 代码块A
Calendar time = Calendar.getInstance();
time.set(Calendar.DAY_OF_MONTH, date);
time.set(Calendar.MONTH, month);
time.set(Calendar.YEAR, year);
time.set(Calendar.HOUR, hour);
time.set(Calendar.MINUTE, minut);
time.set(Calendar.SECOND, 0);
am.set(AlarmManager.RTC_WAKEUP, time.getTimeInMillis(), pi);
代码块B
Calendar time = Calendar.getInstance(TimeZone.getDefault(), Locale.getDefault());
time.set(year, month, date, hour, minut, 0);
am.set(AlarmManager.RTC_WAKEUP, time.getTimeInMillis(), pi);
它神奇地工作着。我为那些面临同样问题的人发布了这个答案。谢谢我找到了解决我自己问题的方法 我将代码块A更改为代码块B,如下所示: 代码块A
Calendar time = Calendar.getInstance();
time.set(Calendar.DAY_OF_MONTH, date);
time.set(Calendar.MONTH, month);
time.set(Calendar.YEAR, year);
time.set(Calendar.HOUR, hour);
time.set(Calendar.MINUTE, minut);
time.set(Calendar.SECOND, 0);
am.set(AlarmManager.RTC_WAKEUP, time.getTimeInMillis(), pi);
代码块B
Calendar time = Calendar.getInstance(TimeZone.getDefault(), Locale.getDefault());
time.set(year, month, date, hour, minut, 0);
am.set(AlarmManager.RTC_WAKEUP, time.getTimeInMillis(), pi);
它神奇地工作着。我为那些面临同样问题的人发布了这个答案。谢谢这不是魔术,因为B区使用的是hourOfDay,它使用的是24小时格式,而A区使用的是Calendar.HOUR,它使用的是12小时格式:)这不是魔术,因为B区使用的是hourOfDay,它使用的是24小时格式,而A区使用的是Calendar.HOUR,它使用的是12小时格式:)