Android:创建一个在启动它的应用程序中幸存的服务

时间:2010-11-10 13:26:33

标签: android service

我正在开发一个包含以下内容的Android应用程序:

  • 将事件记录到数据库
  • 的轻量级后台服务
  • 一个较重的GUI应用程序,它总结了这些事件并显示图形。
但是,我在创建服务部分时遇到了麻烦。图形应用程序可以使用相当多的RAM,当它转到后台时,操作系统会在一段时间不使用后关闭它。

问题是,当应用程序关闭时,服务也会关闭。这很糟糕,因为这使我无法记录更多事件。我不关心应用程序是否被终止,但服务需要继续运行。


我已尝试过多种方法来保持服​​务的活跃性,例如让它使用线程或不同于主应用程序的命名进程。没有任何工作,我找不到任何Android开发者页面或论坛的帮助。

感谢您的建议!

3 个答案:

答案 0 :(得分:2)

尝试在服务的onStartCommand()中返回START_STICKY。另外你如何开始服务?如果将bindService()与BIND_AUTO_CREATE标志一起使用,它将在unbindService()上自动停止。您应该使用startService()显式启动它并停止调用stopSelf()。比操作系统在活动关闭后让您的进程在后台运行。注意:活动和服务在一个进程中运行并且它是不可能的:“应用程序被终止,但服务需要继续运行”。但是,可以在没有活动的情况下保持进程运行,并在后台运行服务。 阅读详细信息http://developer.android.com/reference/android/app/Service.html。 祝你好运!

答案 1 :(得分:1)

您应该使用AlarmManager重新生成服务。你无法永远保持你的服务。

答案 2 :(得分:0)