我已经在我的一个主要活动类中启动了我的服务。问题是,当我的应用程序不运行时,我想停止我的服务。我如何实现这一点。是否有任何选项可以停止它,而不使用任何按钮单击或控件的其他单击事件停止它。还有,当我的应用程序运行时,是否有任何方法可以指示服务是否正在运行
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; }
crcmnpdw2#
使用Intent,您可以停止服务。
Intent intentStartervice = new Intent(context, MyService.class); stopService(intentStartService);
字符串或只要传递上下文。
context.stopService(new Intent(context, MyService.class));
t5fffqht3#
您可以在启动器Activity的onCreate中启动服务,并在同一Activity的onStop中停止服务。您可以参考此获取完整的服务教程:http://marakana.com/forums/android/examples/60.html是的,最好使用相同的Intent变量来启动和停止Activity。最后,不要忘记将服务添加到清单。
5ssjco0h4#
您可以在adb shell上使用Activity Manager:
adb shell dumpsys activity services [text search]
字符串将[text search]替换为要查找的服务的一些文本。您应该获得具有以下服务限定名的“服务记录”:/<fully.qualified.serviceclass>那么就这样停止吧:
[text search]
adb shell am stop-service <package name>/<fully.qualified.serviceclass>
型注意,服务必须在AndroidManifest.xml中包含exported=true,否则您将得到一个停止服务时出错当运行这个。
AndroidManifest.xml
exported=true
4条答案
按热度按时间f5emj3cl1#
仅仅是像这样激发一个意念:
字符串
只需在停止服务的地方添加此代码块:
型
Update:
将此方法添加到应用程序的每个Activity中
型
crcmnpdw2#
使用Intent,您可以停止服务。
字符串
或
只要传递上下文。
型
t5fffqht3#
您可以在启动器Activity的onCreate中启动服务,并在同一Activity的onStop中停止服务。您可以参考此获取完整的服务教程:
http://marakana.com/forums/android/examples/60.html
是的,最好使用相同的Intent变量来启动和停止Activity。最后,不要忘记将服务添加到清单。
5ssjco0h4#
您可以在adb shell上使用Activity Manager:
字符串
将
[text search]
替换为要查找的服务的一些文本。您应该获得具有以下服务限定名的“服务记录”:/<fully.qualified.serviceclass>
那么就这样停止吧:
型
注意,服务必须在
AndroidManifest.xml
中包含exported=true
,否则您将得到一个停止服务时出错
当运行这个。