0

因此,我正在开发一个应用程序,该应用程序使用 AlarmManager 广播意图,让我的接收器完成一项简单的任务并快速完成。我希望我的接收器每隔几分钟运行一次,所以我用它setRepeating来确保这一点。我不想担心我的应用程序的主要活动正在运行或在警报触发时可见。为了让我的接收器像这样与主要活动分开运行,我是否需要android:process=":remote"在清单中添加到接收器?还是它们本身就已经是分开的东西了?两者不需要交流。我正在尽最大努力在不取消任何警报的情况下终止活动,并且接收器现在似乎运行正常,但我想知道它是否会继续工作几个小时或几天。

4

2 回答 2

1

是的,它们是分开的。无需使用该属性。

顺便问一下,你在那个 BroadcastReceiver 中做了多少工作?通常,您不能在 BroadcastReceiver 本身内部做很多事情,您可以使用它来触发其他事情。

另外,我想知道您是如何执行以下操作的:

“我正在尽力扼杀活动……”

我想知道您试图通过杀死活动来解决什么问题?

于 2013-04-25T02:48:39.333 回答
0

对于您的直接问题-当然不是-它将成为性能杀手,并且无论如何都不需要。

对您的设计 - 有缺陷。你应该 :

  1. 注册警报(还要注意在启动时重新注册) - 请参阅wakeLock 不等待网络连接以获取注册警报的代码
  2. 当 AlarmaManager 唤醒你的接收者委托到一个WakefulIntentService. 不保证 Intent 服务在设备处于睡眠状态时运行(请参阅Android 深度睡眠和唤醒锁)。

也可以看看:

于 2013-12-29T19:15:00.517 回答