gpt4 book ai didi

android - 我应该在 AlarmManager 中使用 PendingIntent.getService() 还是 getBroadcast?

转载 作者:IT王子 更新时间:2023-10-29 00:02:18 24 4
gpt4 key购买 nike

我的应用需要在每天的特定时间从网络上获取一些数据。所以我使用 AlarmManager 来安排任务并且工作正常。

但是在查看各种示例时,似乎有两种方法可以处理待处理 Intent 时的 AlarmManager。

当警报响起时,使用 PendingIntent.getBroadcast() 调用广播接收器,在该接收器内部启动执行实际工作的服务。

另一种方法是使用 PendingIntent.getService() 并在警报响起时直接调用服务。

有人可以向我解释这两种方法之间的区别,以便我决定依赖哪一种吗?

编辑:还有一个问题是使用 getService() 时在哪里获取唤醒锁?

例如,当使用广播接收器时,我在 onReceive() 中有以下行:

WakeReminderIntentService.acquireStaticLock(context);

如果我直接调用服务,我应该如何获取唤醒锁:

PendingIntent pi = PendingIntent.getService(this, 0, new Intent(this, OnAlarmReceiver.class), PendingIntent.FLAG_UPDATE_CURRENT);

我应该直接从服务中获取它吗?

最佳答案

一个使用PendingIntent.getBroadcast()调用broadcast receiver当警报响起并在该接收器内部时,开始执行实际工作的服务。

它比启动服务多一步

另一种方法是使用 PendingIntent.getService()并在警报响起时直接调用服务。

那么你应该使用第二种方法,因为它减少了你的执行步骤..

关于android - 我应该在 AlarmManager 中使用 PendingIntent.getService() 还是 getBroadcast?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7308298/

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