我想每天3点检查一些共享的首选项数据。我有三个不同的班级;
第一个:该类包含我的主要任务(以检查sharedpref。)。
第二个:一个广播接收器,可在设备重启时重新设置我的闹钟
第三名:我的主要活动课程
有两个问题;
如果我通过主Activity的onCreate方法触发了警报,则我的警报将正常运行,直到重新启动应用程序为止。每当我重新启动应用程序时,都会立即触发我的警报(它不会等待警报时间)。
第二,假设用户重新启动电话,并且我的广播接收器在重新启动后运行,然后再次设置警报。如果用户启动该应用程序将会怎样? (因为已经设置了闹钟)
这是我的密码;
Log.e("Main Task:","Do someting");
if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) {
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, 3);
calendar.set(Calendar.MINUTE, 0);
long delay = 24*60*60*1000;
AlarmManager alarmMgr =(AlarmManager) context.getSystemService (Context.ALARM_SERVICE);
Intent alarmIntent = new Intent(context, myMainTask.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context,145,alarmIntent,PendingIntent.FLAG_UPDATE_CURRENT);
alarmMgr.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), delay, pendingIntent);
Toast.makeText(context,"Ahanda Kuruldum",Toast.LENGTH_LONG).show();
Log.e("ZB-DeviceBootReceiver:","just now alarm_up");
}
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, 3);
calendar.set(Calendar.MINUTE, 0);
long delay = 24*60*60*1000;
alarmMgr =(AlarmManager) getApplicationContext().getSystemService (Context.ALARM_SERVICE);
Intent intent = new Intent(getApplicationContext(), myMainTask.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast (getApplicationContext(),1453, intent,PendingIntent.FLAG_UPDATE_CURRENT);
alarmMgr.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), delay, pendingIntent);
谢谢。