【发布时间】:2015-07-07 17:45:14
【问题描述】:
我已经实现了一个简单的 Android Service,默认情况下,它部署在与我的应用程序/apk 相同的进程中。我希望服务与每个Activity 同时运行。为了实现这一点,在每个Activity.onStart() 和Activity.onStop() 实现中,我都有分别调用Activity.bindService() 和Activity.unbindService() 的逻辑。
嗯,这一切都很好,但感觉很尴尬。有没有其他方法可以确保Service 持续运行并绑定到所有活动,而不必为每个活动重新调用Activity.bindService() 和Activity.unbindService()?在这种情况下,Service 是否应该声明为独立进程?
另外,我的服务启动了一个单独的线程,但从不停止它。我的代码应该停止线程吗?线程有可能被孤立吗?使用OnUnbind / OnRebind 启动/停止线程似乎有点矫枉过正。
【问题讨论】:
-
创建一个绑定/取消绑定服务的基础 Activity 并让你的所有活动扩展这个基础 Activity
-
这是关于 Stackoverflow 的讨论,建议使用 pskink 提到的方法:stackoverflow.com/questions/2621395/…
-
如果你的服务只是偶尔做任务,考虑使用 IntentService