如果警报时间已经过了一天,android就会阻止警报服务的立即触发。

报警经理的推荐信说

如果规定的触发时间是过去的,警报将立即触发。

在我的申请中,我正面临着这个问题。这是我的报警经理代码:

Intent myIntent = new Intent(getActivity(), DinnerAlarmReceiver.class);
                pendingDinnerIntent = PendingIntent.getBroadcast(getActivity(), 0, myIntent, 0);

                Calendar calendar = Calendar.getInstance();
                calendar.set(Calendar.HOUR_OF_DAY, hourOfDay);
                calendar.set(Calendar.MINUTE, minute);

                alarmManager.set(AlarmManager.RTC_WAKEUP,
                        calendar.getTimeInMillis(), pendingDinnerIntent);

这个问题有什么解决办法吗?

-编辑

我编写了一些代码来估计警报的设定时间是否在当前时间之前。下面是上面的部分,并作了相应的更改:

Calendar calendar = Calendar.getInstance();
                long currentTime = calendar.getTimeInMillis();
                calendar.set(Calendar.HOUR_OF_DAY, hourOfDay);
                calendar.set(Calendar.MINUTE, minute);
                long setTime = calendar.getTimeInMillis();
                Timestamp setTimestamp = new Timestamp(setTime);
                Timestamp currentTimestamp = new Timestamp(currentTime);
                if (setTimestamp.after(currentTimestamp))
                {
                    alarmManager.set(AlarmManager.RTC_WAKEUP,
                            calendar.getTimeInMillis(), pendingDinnerIntent);
                }
                else
                {
                }

我该怎么做alarmManager以防万一setTimestamp是以前currentTimestamp ?


喵喵时光机
浏览 362回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android