Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.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 取消绑定服务与停止服务_Java_Android - Fatal编程技术网

Java 取消绑定服务与停止服务

Java 取消绑定服务与停止服务,java,android,Java,Android,我有一个单一的活动应用程序来启动服务并绑定到它。 我希望即使在退出活动后服务仍能继续运行 现在我做的是停止服务,然后是解除绑定服务。我的假设是,我确实需要解除绑定,但为了让它继续运行,我(显然)不应该调用stopService,对吗 我只想知道长时间运行的服务的正确服务管理技术。这可以从服务文档中找到答案: 请注意,如果停止的服务仍然使用BIND_AUTO_CREATE集将ServiceConnection对象绑定到该服务,则在删除所有这些绑定之前,不会销毁该服务。有关服务生命周期的更多详细信息

我有一个单一的活动应用程序来启动服务并绑定到它。 我希望即使在退出活动后服务仍能继续运行

现在我做的是停止服务,然后是解除绑定服务。我的假设是,我确实需要解除绑定,但为了让它继续运行,我(显然)不应该调用stopService,对吗


我只想知道长时间运行的服务的正确服务管理技术。

这可以从服务文档中找到答案:

请注意,如果停止的服务仍然使用BIND_AUTO_CREATE集将ServiceConnection对象绑定到该服务,则在删除所有这些绑定之前,不会销毁该服务。有关服务生命周期的更多详细信息,请参阅服务文档


要清理您的服务,最好将其解开。您始终可以使用另一个意图和Context.startService()重新启动它。根据您使用它的方式,最好先启动服务一段时间,做一些事情,停止它(您甚至可以通过调用stopSelf来完成),然后在有更多工作要做时重新启动它,或者获得其他目的。

明白。我明白了在活动结束时解除绑定的原因。但即使在我退出后,如果我不停止服务,服务也会继续运行,对吗?如果你不做任何工作,这不重要,它会一直存在,直到系统自然终止它。这和你的活动放在应用程序堆上时发生的情况没有什么不同,无论如何……我实际上是在服务中工作。我正在收听home按钮的按下和GPS定位。如果我不需要它,我当然会停止。点为“unbind”会将活动从服务中解除绑定,但stopService会将其终止。事实上,我想知道为什么我甚至需要绑定到它。这是一个很好的实践。顺便说一句,你绝对不应该抓住主页按钮。用户真的很讨厌你这样做。不要那样做。在您只有一个活动绑定的情况下,这很好,但是解除绑定至少会释放一些与维护连接相关的空间,这是一个总体良好的实践。顺便说一下,当您准备退出时,只需调用stopSelf()