应用程序关闭时停止后台服务(或最小化)

时间:2013-09-18 12:17:58

标签: android android-service

我的应用程序包含几个活动。 (10以上)。 当应用程序在启动活动中启动时(有些人可能认为应用程序不应该有启动,但这不是重点)我正在启动服务。

但是,由于存在许多活动,并且应用程序是用户驱动的应用程序,因此当用户决定离开应用程序或甚至将其最小化时,用户可能处于任何活动中。

我的问题是,我是否需要在每个活动的每个onPause / onStop中包含一个检查,以检查我的服务是否正在运行,如果它正在这样做,请停止它吗?或者,有一些东西需要在一个地方完成?

要检查我的服务是否正在运行,我使用以下内容。

    private boolean isMyServiceRunning()
{
    ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
    for (RunningServiceInfo service : manager
            .getRunningServices(Integer.MAX_VALUE))
    {
        if (MyService.class.getName()
                .equals(service.service.getClassName()))
        {
            return true;
        }
    }
    return false;
}

3 个答案:

答案 0 :(得分:0)

如果您通过扩展服务创建了服务,那么当您关闭应用时,此服务将会关闭。

&安培;

如果您通过扩展IntentService来创建服务,那么当执行所有意图时,该服务将自动关闭。

答案 1 :(得分:0)

您可以通过 stopService()方法停止服务。只需调用 stopService()方法即可停止服务。

服务可以通过调用 stopSelf()方法来终止自身。在服务类完成其工作时执行此操作。

答案 2 :(得分:0)

您可以使用重载的onPause / onResume等methotd扩展标准活动并使用它。通过这个,您可以通过一个代码安静来控制所有活动状态。