首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AlarmManager的问题

AlarmManager的问题
EN

Stack Overflow用户
提问于 2018-03-05 14:53:52
回答 1查看 28关注 0票数 0

我正在开发一个在SharedPrefernces中保存一些键值的应用程序。但是我想根据他们在03:00(凌晨03:00 AM)与INTERVAL_DAY的ID从共享首选项中删除一些密钥。通过阅读一些关于AlarmManager的块和stackoverflow答案,我现在正在尝试使用这段代码,

代码语言:javascript
复制
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 3); 
calendar.set(Calendar.MINUTE, 0); 
calendar.set(Calendar.SECOND, 0);

Intent intent = new Intent(context, ClearSharedPreferences.class);
    intent.putExtra("id", ID);
    PendingIntent pendingIntent = PendingIntent.getBroadcast(context, ID, intent, PendingIntent.FLAG_UPDATE_CURRENT);

AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
    if (alarmManager != null) {
        alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent);
    }

一切都很好,但问题是,不是在晚上三点跑步。正如我设置的那样,AlarmManager在2-3分钟后开始运行。

因此,问题是如何设置AlarmManager在一天中的特定时间运行?

EN

回答 1

Stack Overflow用户

发布于 2018-03-05 15:00:26

按如下方式设置闹钟:

代码语言:javascript
复制
    Calendar calendar = Calendar.getInstance();
    calendar.setTimeInMillis(System.currentTimeMillis());
    calendar.set(Calendar.HOUR_OF_DAY, 14);
    calendar.set(Calendar.MINUTE, 30);

    if (calendar.before(Calendar.getInstance())) {
        calendar.add(Calendar.DATE, 1);
    }

    alarmMgr.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
            AlarmManager.INTERVAL_DAY, alarmIntent);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49104941

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档