gpt4 book ai didi

android - 创建带警报的重复服务

转载 作者:行者123 更新时间:2023-11-29 16:06:10 26 4
gpt4 key购买 nike

我尝试在我的应用程序中创建一项服务,每天下午 2 点更新数据。我想设置一个重复警报,触发服务为我获取数据。这与 UI 线程无关,即使在应用程序关闭时也应该可以正常工作。

我似乎无法启动我的服务。

这是我在 Activity 中创建闹钟的代码

    Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY, 20); // HOUR
cal.set(Calendar.MINUTE, 0); // MIN
cal.set(Calendar.SECOND, 0); // SEC
Intent intent = new Intent(Main.this, VenueUpdater.class);
PendingIntent pintent = PendingIntent.getService(Main.this, 0, intent, 0);
AlarmManager alarm = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
alarm.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), 30*1000, pintent);

然后是我的服务类

public class VenueUpdater extends Service{

@Override
public IBinder onBind(Intent arg0) {
return null;
}

@Override
public void onCreate() {
Toast.makeText(this, "Create", Toast.LENGTH_SHORT).show();
Log.i("SERVICE", "onCreate");
}

@Override
public void onDestroy() {
Toast.makeText(this, "Destroy", Toast.LENGTH_SHORT).show();
Log.i("SERVICE", "onDestroy");
}

@SuppressWarnings("deprecation")
@Override
public void onStart(Intent intent, int startid) {
super.onStart(intent, startid);
Toast.makeText(this, "Start", Toast.LENGTH_SHORT).show();
Log.i("SERVICE", "onStart");
}

}

在我关闭应用程序标签之前在我的 list 中

 <service android:enabled="true" android:name="services.VenueUpdater" />

</application>

我已经检查了一些我使用过服务的其他示例和代码,这些代码似乎没问题,但仍然无法正常工作。此外,我想知道是否有更好的方法来实现这一点,因为同一个警报最终可能会被多次创建,但可能有一个待处理的 Intent 标志,我可以用来检查它是否没有。

最佳答案

您已将闹钟设置为晚上 8 点响起,而不是下午 2 点响起:

cal.set(Calendar.HOUR_OF_DAY, 20); // HOUR

如果您想确保您的闹钟不会被多次安排,您可以在设置闹钟之前取消任何之前安排的闹钟,如下所示:

alarm.cancel(pintent);

另外,调用 AlarmManager:

alarm.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), 30*1000, pintent);

将您的闹钟设置为晚上 8 点响起,之后每 30 秒响一次。这是你想要的吗?

EDIT 显示如何将闹钟设置为每天下午 2 点重复一次

要安排闹钟每天下午 2 点重复一次,请使用:

alarm.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pintent);

关于android - 创建带警报的重复服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18176207/

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