Android - 每天早上 5 点运行服务的闹钟管理器

标签 android date time alarmmanager

我需要在每天早上 5 点运行我的更新服务,以便在用户早上拿起手机时刷新数据。到目前为止我的代码是 -

Log.d(TAG, "setAutoRun");
AlarmManager alarmMgr = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(this, RefreshIntentService.class);
PendingIntent pendingI = PendingIntent.getService(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
Calendar time = Calendar.getInstance();

time.setTimeInMillis(System.currentTimeMillis());

time.add(Calendar.SECOND, 60); // this was just to test out the alarm service
alarmMgr.set(AlarmManager.RTC, time.getTimeInMillis(), pendingI);

我如何修改它让它每天早上 5 点运行? 我知道我可以设置一个时间间隔,这样它会在 X 分钟后再次运行,但如果用户那时不打开它,我怎么能在凌晨 5 点启动它。

谢谢

最佳答案

我相信像这样编辑您的 Calendar params 应该可以工作并更改为 setRepeating()

Calendar time = Calendar.getInstance();
time.set(Calendar.HOUR_OF_DAY, 5);   

alarmMgr.setRepeating(AlarmManager.RTC, time.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingI);

AlarmManager.INTERVAL_DAY

关于Android - 每天早上 5 点运行服务的闹钟管理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15796552/

相关文章:

android - 从另一个 Activity 更改一个 Activity 的背景

android - 获取大量数据会抛出光标窗口 : Window is full error

java - 如何选择特定日期(当 : type = "date") in Selenium WebDriver?

javascript - 如何在 JavaScript 中将当前日期格式化为 mm-dd-yy?

Java多线程。不同线程上的相同 System.currentTimeMillis() 值

android - 通过 ADB 以 root 身份启动脚本

android - 更改 EditText 的焦点颜色?

php - 在 PHP 中转换日期时出现 "Call to a member function format() on a non-object"

python - 如何在python中对日期进行排序?

javascript - Momentjs 午夜以来的分钟数