【发布时间】:2017-09-03 06:25:42
【问题描述】:
我正在制作一个通知应用程序,为此我正在使用预定的警报来使用广播接收器类运行通知,并且我正在提示用户从每日或每小时通知中进行选择,并且我在同一个接收器中定义了两个警报功能,它工作正常,但是当我重新启动我的设备时问题就来了重新启动我的设备,每小时一次和这个 11:20 都被触发,我希望当我重新启动我的设备时,只有在设备启动之前选择的警报才会被触发。
我的接收器类:-
public class alarmreceiver extends BroadcastReceiver {
int id=0;
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "Alarm running", Toast.LENGTH_SHORT).show();
start(context,id);
}
static void start(Context context,int id) {
Intent intent = new Intent(context, notification_receiver.class);
PendingIntent pendingintent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
if (id==1) {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR, 11);
calendar.set(Calendar.MINUTE, 9);
calendar.set(Calendar.AM_PM, Calendar.AM);
alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingintent);
}
else
if (id==2) {
alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,
SystemClock.elapsedRealtime(), 60 * 1000
, pendingintent);
}
}
我在按钮单击侦听器下调用此函数,如下所示:- 对于每日通知:-
alarmreceiver.start(getApplicationContext(),1);
每小时通知:-
alarmreceiver.start(getApplicationContext(),2);
【问题讨论】:
-
发布设备启动时运行的代码
标签: android android-intent notifications broadcastreceiver android-alarms