Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Stopself()到底是什么意思?什么';终止正在运行的服务的最佳方式是什么?_Java_Android_Service - Fatal编程技术网

Java Stopself()到底是什么意思?什么';终止正在运行的服务的最佳方式是什么?

Java Stopself()到底是什么意思?什么';终止正在运行的服务的最佳方式是什么?,java,android,service,Java,Android,Service,我是android的初学者,对java没有太多经验 我有一个活动,创建一个报警管理器,并启动指向服务的alarmManager.setRepeating() onCreate中的此服务设置部分唤醒锁以执行代码的整个执行过程(该应用程序用于非用户交互,因此手机始终处于待机状态) 所有这些工作都很完美 有时,服务不应该执行整个代码,而是在退出执行之前退出。因此,我使用了StopSelf,但我有一些疑问: onDestroy服务中的函数具有删除唤醒锁的代码。StopSelf()调用它吗 无论如何,如

我是android的初学者,对java没有太多经验

我有一个活动,创建一个
报警管理器
,并启动指向服务的
alarmManager.setRepeating()

onCreate中的此服务设置部分唤醒锁以执行代码的整个执行过程(该应用程序用于非用户交互,因此手机始终处于待机状态)

所有这些工作都很完美

有时,服务不应该执行整个代码,而是在退出执行之前退出。因此,我使用了
StopSelf
,但我有一些疑问:

  • onDestroy
    服务中的函数具有删除唤醒锁的代码。
    StopSelf()
    调用它吗

  • 无论如何,如果我没有指定任何函数来终止服务,那么在代码执行之后,它何时终止

因此,在我的例子中,最好是替换
ondestory()
而不是
Stopself()
? 好多了

stopSelf()
线程完成之前被调用。
调用
stopSelf()
时,
线程运行到完成


服务在调用
stopSelf()
时仍被销毁

您应该调用
stopSelf()
停止服务。调用后,Android框架将自动调用
onDestroy()
方法

实际上,这些onXXX()方法(前缀“on”意味着这些方法是系统的回调)应该由系统调用,而不是由开发人员调用。
阅读SDK以了解更多详细信息。

要回答您的其他问题,服务仅在调用stopSelf()或Context.stopService()时终止

参考:
转到中的服务生命周期:

如果服务以前启动过,请停止该服务。

在调用stopself后,为什么不在onDestroy中使用logoutput来查看是否执行了该服务?您介意发布一些服务代码吗?那肯定会帮助我们帮助你;)Thanx先生,我现在正在做这件事,但我不在家,所以我无法测试代码…-)我没有发布代码,因为代码太长:-(Thanx朋友,我对这些事情非常无知。但是当服务被破坏时,没有stopself()。(因此,wakelock被删除)Thanx!