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_WAKEUPAlarmManager.ELAPSED_REALTIME_WAKEUP 表示自设备启动以来的时间,而不是 UTC 时间。