0

我的应用程序包含几个活动。(超过 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;
}
4

3 回答 3

0

如果你通过扩展 Service 创建了一个服务,那么当你关闭应用程序时,这个服务将被关闭。

&

如果你通过扩展 IntentService 创建了一个服务,那么这个服务会在所有的意图执行完毕后自动关闭。

于 2013-09-18T12:32:52.780 回答
0

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

服务可以通过调用stopSelf()方法自行终止。完成工作后,在服务类中执行此操作。

于 2013-09-18T12:33:02.677 回答
0

您可以使用重载的 onPause/onResume 等方法扩展标准活动一次并使用它。通过这个,您可以通过一个代码和平控制所有活动状态。

于 2013-09-18T12:39:31.300 回答