我在活动A中通过startService()
启动了android服务。我的应用程序中有多个活动。问题在于onDestroy()
活动。
我正在做的是在onDestroy()
活动中生成一个事件。 Application类是此事件的订阅者,我在Application类中停止此服务。我知道每次应用程序关闭时都不能保证调用onDestroy()
。
我还需要保持服务运行直到应用程序运行。 在申请结束时停止服务的最佳方法是什么?
我正在使用 otto 库来进行活动总线。
答案 0 :(得分:0)
您可以在Service
中启动HeadlessFragment
并在HeadlessFragment
中添加activity
实现和理解无头片段http://luboganev.github.io/blog/headless-fragments/
的示例希望这有帮助。
答案 1 :(得分:0)
在Application
课程中实施ActivityLifecycleCallbacks:
public class MyApplication extends Application implements ActivityLifecycleCallbacks {
@Override
public void onCreate() {
super.onCreate();
// initialize anything application wide
// this is important, otherwise it won't work
registerActivityLifecycleCallbacks(this);
}
@Override
public void onActivityResumed(Activity activity) {
// your application is running, do something
}
@Override
public void onActivityPaused(Activity activity) {
// your application was closed, stop any service or something else.
}
}
这是跟踪整个应用程序生命周期的最佳方式。
答案 2 :(得分:0)
根据您的要求,您可以使用ActivityLifecycleCallbacks或TRIM_MEMORY_UI_HIDDEN来检测Activtys'可视性。