当我两次启动闹钟时会发生什么?

发布于 2024-11-02 13:18:12 字数 546 浏览 4 评论 0原文

我正在跳圈(嗯,当然没那么复杂)以避免两次启动警报。基本代码如下:

AlarmManager mgr=(AlarmManager)getSystemService(Context.ALARM_SERVICE);
Intent i=new Intent(this, MyService.class);
PendingIntent pi=PendingIntent.getService(this, 0, i, 0);
mgr.setInexactRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime(), AlarmManager.INTERVAL_FIFTEEN_MINUTES, pi);

如果我每次应用程序启动时都运行此代码,这会重要吗?当我将此称为过度杀戮实验大约 10 次时,我没有看到任何不良影响,但我找不到任何关于这是否是巧合或预期行为的参考。

如果不是特别期待的话,就会感觉“不对”。如果 AlarmManager 的行为发生变化,以后可能会给我带来麻烦。

I'm Jumping trough hoops (well, it's not that complicated ofcourse) to avoid starting an alarm twice. The basic code goes like this:

AlarmManager mgr=(AlarmManager)getSystemService(Context.ALARM_SERVICE);
Intent i=new Intent(this, MyService.class);
PendingIntent pi=PendingIntent.getService(this, 0, i, 0);
mgr.setInexactRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime(), AlarmManager.INTERVAL_FIFTEEN_MINUTES, pi);

Would it matter if I would actually run this code everytime my app starts? I'm not seeing any ill effects when calling this about 10 times as an overkill-experiment, but I can't find any reference as to if this is coincidence or expected behavior.

If it is not especially expected, it feels 'wrong'. It might get me in to trouble later if the behavior of the AlarmManager changes.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

倥絔 2024-11-09 13:18:12

由于 AlarmManager 的取消方法可以使用“类似”意图来取消警报,因此我们可以说平台可以识别给定类名的意图。因此,重复调用这个应该不是问题,因为平台会知道对于这样一个待处理的意图,警报已经存在。

这是一篇帖子,讨论了类似的内容。

Since the cancel method for AlarmManager is fine with a 'similar' Intent to cancel the alarm, we can say that the platform recognizes the intent given the class name. Hence calling this repeatedly shouldn't be a problem since the platform will know that for such a pending intent an alarm already exists.

Here is a post that talks something similar.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文