gpt4 book ai didi

Android 在一天中的特定时间设置重复闹钟

转载 作者:行者123 更新时间:2023-11-30 03:54:09 25 4
gpt4 key购买 nike

我正在尝试设置一个重复闹钟,它会每分钟下载一个文件,但只在 8:00 到 22:00 之间。我觉得我真的很接近,但我看不到我犯的错误。当前广播接收器未激活。如果手动将重复闹钟设置为 alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()+10000, 60000,pendingIntent); 它工作正常。任何指导将不胜感激。

protected void scheduleNextUpdate()
{
Intent intent = new Intent("TEST");
PendingIntent pendingIntent =
PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
int updateInterval = 1;
long nextUpdate =(60000 * updateInterval);

long currentTimeMillis = System.currentTimeMillis();


long nextUpdateTimeMillis = currentTimeMillis + nextUpdate;
Time nextUpdateTime = new Time();
nextUpdateTime.set(nextUpdateTimeMillis);

if (nextUpdateTime.hour < 8 || nextUpdateTime.hour > 22)
{
nextUpdateTime.hour = 8;
nextUpdateTime.minute = 0;
nextUpdateTime.second = 0;
nextUpdateTimeMillis = nextUpdateTime.toMillis(false) + DateUtils.DAY_IN_MILLIS;
}

AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()+10000, nextUpdateTimeMillis,pendingIntent);

boolean alarmUp = (PendingIntent.getBroadcast(this, 0,
new Intent("TEST"),
PendingIntent.FLAG_NO_CREATE) != null);

if (alarmUp)
{
Log.d("myTag", "Alarm is already active");
}
}

最佳答案

您应该像您提到的那样将闹钟设置为在 8:00 到 22:00 之间重复:

alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()+10000, 60000,pendingIntent); 

这将每分钟重复一次。但是您必须明确取消警报。您可以在下载完成后通过检查是否已经是 22:00 来取消它。或者由将在 22:00 时触发的另一个警报。否则不会停止。

使用 alarmManager.cancel (pendingIntent)

此处描述:http://developer.android.com/reference/android/app/AlarmManager.html#cancel(android.app.PendingIntent

希望这对您有所帮助。

关于Android 在一天中的特定时间设置重复闹钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13605840/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com