有一些需要完成的长处理,所以我把它放在一个服务中。活动必须能够连接到服务,向用户显示服务的当前结果。所以我使用start Service启动服务,然后在http://developer.android.com/reference/android/app/Service.html# ServiceLifecycle 的LocalService中调用bind Service(使用BIND_AUTO_CREATE)。我希望它运行直到它的工作完成,然后自我停止,即使客户端仍然连接到它。 (或确定客户端解除绑定)是否可以使用示例LocalService执行此操作?
我正在考虑将处理程序传递给服务,以便它可以将消息发送回活动,但我不希望活动泄露。我只是习惯使用服务,所以也许我在滥用它。
编辑:工作负载由几个线程组成,同步并且并行运行,所以我猜想它不是意图服务的好选择。一些数据分析在后台服务中完成,当用户重新启动启动服务的活动时,它应根据后台服务计算的当前值显示一些图形。所有后台处理都在开始时触发,并且只需稍后检查,当活动连接到它时。 Android应该无法停止服务。作业完成后,即使活动已连接,服务也应该能够终止。