Activity关闭后如何保持服务运行?

时间:2014-06-23 17:41:57

标签: android

我正在创建一个服务...绑定配置器,但是我想取消绑定配置器并使服务保持运行...但是当我解除绑定时,服务自行停止,并且没有解除绑定,服务崩溃时出现错误泄露的服务连接...所以我该怎么办?

我正在创建没有BIND_AUTOCREATE标志的服务。使用startService

3 个答案:

答案 0 :(得分:1)

您应该能够使用intent和startService()启动后台服务,该服务不会绑定到您的活动,不应泄漏或崩溃,我不确定您使用的是什么配置器,因为我从来没有在AIDL调用中绑定服务,你可以传入参数吗?

我不是下载者,虽然我认为你需要附上一些代码。如果您附上代码,请留下评论,我会看看是否可以更新我的答案以获得更多帮助。

答案 1 :(得分:0)

我认为你不应该绑定服务,只需要startService()即可。当您需要在UI流程和服务流程之间进行通信时,AIDL可以提供帮助。

我通常使用AIDL强绑定器作为服务进程的回调来执行。您可以查看我的库以获取一些示例:hogwarts library

答案 2 :(得分:0)

这个问题可能混合了许多不同的问题。

我认为问题在于,当与服务一起使用时,“已启动”一词与实际完成有用的工作无关。服务并没有真正“运行”。服务代码执行时只响应两件事:来自绑定客户端的意图和请求。

当你解开它时,你的服务肯定不会停止。如果它已启动,它将保持启动状态。如果它没有启动,它仍然不是。我想更多地了解什么是“正在运行”,以便在解除服务绑定时崩溃。

如果您的配置程序在没有解除服务绑定的情况下离开,那么您已泄露了Binder连接。这会给你一个警告,但这可能不是什么大问题:Binder应该照顾它。