0

我有 Android 服务每 9 分钟运行一次并发送电子邮件,但经过一些周期后它会退出。这个应用程序也安装在我的 Android froyo 中,但它现在已经运行了两个多月了。我可以在 logcat 中看到服务退出的日志,但我的问题是我不明白它是什么意思。有人可以帮我解决这个问题? 谢谢!!任何帮助,将不胜感激...

这是我的源代码: https ://gist.github.com/77a40ac93cd311acb56c

Logcat 日志:

https://gist.github.com/dd3ab385d79253fac632

4

1 回答 1

0

使用背后的要点AlarmManager是,您的服务只需要在实际工作时在内存中,并且可以在AlarmManager事件之间消失。您已经设法不这样做,因此您的代码将无法可靠地工作。

如果您想“每 9 分钟发送一次电子邮件”,您应该:

  1. 将 移动BroadcastReceiver为公共 Java 类,通过<receiver>元素在清单中注册,并删除registerReceiver()/unregisterReceiver()东西。

  2. 将您的服务切换为IntentService,因此您可以获得一个后台线程(您的工作需要它,但您当前的代码缺少),因此当没有更多工作要做时,该服务可以自动关闭。

  3. 添加您需要的逻辑,WakeLock因为您使用的是_WAKEUP-style 警报。如果您愿意,可以通过切换到myWakefulIntentService来组合此步骤和前面的步骤。

  4. 处理用户重新启动设备的情况,如果您希望警报在重新启动后继续,例如通过ACTION_BOOT_COMPLETED BroadcastReceiver.

于 2012-11-04T14:06:01.450 回答