如何在应用程序未运行时停止Android中的服务,

k4emjkb1  于 2023-11-15  发布在  Android
关注(0)|答案(4)|浏览(147)

我已经在我的一个主要活动类中启动了我的服务。问题是,当我的应用程序不运行时,我想停止我的服务。我如何实现这一点。是否有任何选项可以停止它,而不使用任何按钮单击或控件的其他单击事件停止它。
还有,当我的应用程序运行时,是否有任何方法可以指示服务是否正在运行

f5emj3cl

f5emj3cl1#

仅仅是像这样激发一个意念:

Intent intent = new Intent(this, Your_service.class);

字符串
只需在停止服务的地方添加此代码块:

stopService(intent);

Update:

将此方法添加到应用程序的每个Activity中

public boolean onKeyDown(int key, KeyEvent event)
{
  switch(key.getAction())
  {
      case KeyEvent.KEYCODE_HOME :
         Intent intent = new Intent(this, Your_service.class);
         stopService(intent);
         break;
  }

  return true;
}

crcmnpdw

crcmnpdw2#

使用Intent,您可以停止服务。

Intent intentStartervice = new Intent(context, MyService.class);
stopService(intentStartService);

字符串

只要传递上下文。

context.stopService(new Intent(context, MyService.class));

t5fffqht

t5fffqht3#

您可以在启动器Activity的onCreate中启动服务,并在同一Activity的onStop中停止服务。您可以参考此获取完整的服务教程:
http://marakana.com/forums/android/examples/60.html
是的,最好使用相同的Intent变量来启动和停止Activity。最后,不要忘记将服务添加到清单。

5ssjco0h

5ssjco0h4#

您可以在adb shell上使用Activity Manager:

adb shell dumpsys activity services [text search]

字符串
[text search]替换为要查找的服务的一些文本。您应该获得具有以下服务限定名的“服务记录”:
/<fully.qualified.serviceclass>
那么就这样停止吧:

adb shell am stop-service <package name>/<fully.qualified.serviceclass>


注意,服务必须在AndroidManifest.xml中包含exported=true,否则您将得到一个
停止服务时出错
当运行这个。

相关问题