【问题标题】:How do I end a service when the Android application closes?Android 应用程序关闭时如何结束服务?
【发布时间】:2014-05-12 15:43:36
【问题描述】:

我了解,当您调用 Intent 启动服务时,该服务会继续运行,直到明确结束。

我希望该服务能够保留多个活动。当应用的所有activity都被销毁时如何结束它?

还是自动销毁?

【问题讨论】:

    标签: android android-service


    【解决方案1】:

    在主Activity 中,覆盖onDestroy 并调用stopService

    @Override
    public void onDestroy()
    {
        super.onDestroy();
        Toast.makeText(<Context>, "Stopping service", Toast.LENGTH_SHORT).show();
        Intent intent = new Intent(<MainActivity>.this, <YourService>.class);
        stopService(intent);
    }
    

    【讨论】:

    • 如果主Activity 通过Intent 启动另一个活动(同一应用程序的一部分),它会被销毁吗?
    • 没有。如果您观察Activity 生命周期,则创建和销毁一次活动。如果您从Activity A 呼叫Activity B,则呼叫Activity 将暂停。
    • 那么,当我从Activity B 回到Activity A 时,为什么onCreate() 会再次被调用?
    • @Aashish Activity 将在 onPause() 可见的时间内保持不变(例如,如果 Activity B 的主题为 Dialog),否则它将消失到onStop(),从here可以看出
    • @Emmanuel,感谢您的纠正。 onDestroy 的陈述成立。
    猜你喜欢
    • 1970-01-01
    • 2015-06-02
    • 2013-05-15
    • 1970-01-01
    • 1970-01-01
    • 2011-10-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多