我的应用程序包含几个活动。 (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;
}
答案 0 :(得分:0)
如果您通过扩展服务创建了服务,那么当您关闭应用时,此服务将会关闭。
&安培;
如果您通过扩展IntentService来创建服务,那么当执行所有意图时,该服务将自动关闭。
答案 1 :(得分:0)
您可以通过 stopService()方法停止服务。只需调用 stopService()方法即可停止服务。
服务可以通过调用 stopSelf()方法来终止自身。在服务类完成其工作时执行此操作。
答案 2 :(得分:0)
您可以使用重载的onPause / onResume等methotd扩展标准活动并使用它。通过这个,您可以通过一个代码安静来控制所有活动状态。