如何杀死android服务?
我正在编写一个具有长期运行服务的应用程序 我在服务的如何杀死android服务?,android,service,kill,Android,Service,Kill,我正在编写一个具有长期运行服务的应用程序 我在服务的ondestory方法中编写了一些状态保存代码 我的意图是,如果服务因为内存压力而被Android终止,应该调用这个函数 如何模拟服务被内存压力杀死 我已经尝试了adb shell am force stop com.example.app,但是没有调用服务的onDestroy方法 onDestroy是服务关闭状态保存的合理站点吗 如果是这样,我如何让Android调用服务的onDestroy,以进行调试/测试?如果您想以编程方式停止服务,请在
ondestory
方法中编写了一些状态保存代码
我的意图是,如果服务因为内存压力而被Android终止,应该调用这个函数
如何模拟服务被内存压力杀死 我已经尝试了
adb shell am force stop com.example.app
,但是没有调用服务的onDestroy
方法
onDestroy
是服务关闭状态保存的合理站点吗
如果是这样,我如何让Android调用服务的
onDestroy
,以进行调试/测试?如果您想以编程方式停止服务
,请在服务
中调用stopSelf()
或者转到应用程序设置并执行强制停止。强制停止不会调用任何组件上的
onDestroy
,无论是服务还是活动。它完全关闭应用程序,无需进一步考虑
我不确定这一点,但如果您的服务不是作为前台服务运行的,您可以通过从“最近的应用程序”菜单中删除应用程序来关闭它。您不应该依赖于
onDestroy()
,因为只有在服务正确停止时(通过调用stopService()
或stopSelf()
方法)才会调用它
如果您想保存服务状态,您应该在运行时保存它(例如,当播放/暂停功能激活时,播放器服务可以存储它),或者使用计时器定期保存它
若你们想对内存事件做出反应,你们应该使用类,当Android需要更多内存时,它会通知你们。如果您在这些回调中释放内存,您将增加服务在内存中停留时间更长的可能性
希望这有帮助 “如何模拟服务被内存压力杀死?”--服务永远不会“被内存压力杀死”。由于内存压力,整个进程终止。这是否会触发onDestroy()取决于环境因素。“我如何让Android调用服务的onDestroy?”——从测试套件中调用
stopService()
,用Intent
标识您的服务。@commonware“是否触发onDestroy()取决于环境因素。”如果不总是调用onDestroy
,我应该将状态保存代码定位到哪里?“如果onDestroy不总是被调用,那么我应该将状态保存代码定位到哪里?”——在状态发生变化时。我在这里看到了类似的解决方案——而且,我猜当应用程序崩溃时,不会执行任何方法,因此您可以在未捕获的异常中处理它。请参考此内容对不起,“应用程序设置”(Android 4.0.3)在哪里?您将如何卸载应用程序?通常会有一个专门用于此的屏幕,并有一个“强制停止”选项。我使用adb shell pm uninstall com.example.app
,或google play来卸载应用程序。我还没有看到可以卸载手机应用程序的屏幕。找到了,谢谢-长按home按钮会弹出一个活动列表。Android会像@Commonware所说的那样不礼貌地终止服务。不礼貌的意思是不会调用onDestroy。