android 中午 12 点 48 小时后删除数据
remove data after 48 hours at 12 in android
我想每次晚上12点48小时后从数据库中删除记录,我设置了如下警报,但它根本没有起火,我做错了什么?
dayAlarmMgr= (AlarmManager) this.getSystemService(Context.ALARM_SERVICE);
Intent alramIntent = new Intent(this,SyncAlaram.class);
alramIntent.setAction(SyncAlaram.WIPE_REPORT_DATA);
dayAlarmIntent = PendingIntent.getBroadcast(this, 0, alramIntent, 0);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR, 12);
calendar.set(Calendar.MINUTE, 00);
calendar.set(Calendar.SECOND, 00);
dayAlarmMgr.setRepeating(
AlarmManager.ELAPSED_REALTIME_WAKEUP,
calendar.getTimeInMillis(),
AlarmManager.INTERVAL_DAY * 2,
dayAlarmIntent);
详情
Platform Android 4.0 and above
android:minSdkVersion="11"
android:targetSdkVersion="19"
因为我不能评论,所以我 post 一个答案。试试这个:
dayAlarmMgr.setRepeating(
AlarmManager.RTC_WAKEUP,
calendar.getTimeInMillis(),
AlarmManager.INTERVAL_DAY * 2,
dayAlarmIntent);
请注意,您使用的是绝对时间,将AlarmManager.ELAPSED_REALTIME_WAKEUP
替换为AlarmManager.RTC_WAKEUP
。 AlarmManager.ELAPSED_REALTIME_WAKEUP
表示自设备启动以来的时间,而不是 UTC 时间。
我想每次晚上12点48小时后从数据库中删除记录,我设置了如下警报,但它根本没有起火,我做错了什么?
dayAlarmMgr= (AlarmManager) this.getSystemService(Context.ALARM_SERVICE);
Intent alramIntent = new Intent(this,SyncAlaram.class);
alramIntent.setAction(SyncAlaram.WIPE_REPORT_DATA);
dayAlarmIntent = PendingIntent.getBroadcast(this, 0, alramIntent, 0);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR, 12);
calendar.set(Calendar.MINUTE, 00);
calendar.set(Calendar.SECOND, 00);
dayAlarmMgr.setRepeating(
AlarmManager.ELAPSED_REALTIME_WAKEUP,
calendar.getTimeInMillis(),
AlarmManager.INTERVAL_DAY * 2,
dayAlarmIntent);
详情
Platform Android 4.0 and above
android:minSdkVersion="11"
android:targetSdkVersion="19"
因为我不能评论,所以我 post 一个答案。试试这个:
dayAlarmMgr.setRepeating(
AlarmManager.RTC_WAKEUP,
calendar.getTimeInMillis(),
AlarmManager.INTERVAL_DAY * 2,
dayAlarmIntent);
请注意,您使用的是绝对时间,将AlarmManager.ELAPSED_REALTIME_WAKEUP
替换为AlarmManager.RTC_WAKEUP
。 AlarmManager.ELAPSED_REALTIME_WAKEUP
表示自设备启动以来的时间,而不是 UTC 时间。