推迟销毁Android绑定服务

时间:2016-06-22 00:42:44

标签: java android service lifecycle

我有一个处理多个客户端连接的Android绑定服务。如果我理解正确,如果没有客户端连接,Android会终止服务。

但是,此时,我的服务可能仍会在客户端断开连接后运行长达1分钟的另一个线程。我担心的是,如果我在销毁服务之前加入此线程,则销毁会延迟,并且会阻止创建新服务,从而丢弃新的客户端连接。这是真的?有没有办法推迟绑定服务的销毁? (比如在工作线程启动时向服务添加伪绑定计数,并在线程结束时减去。)

基本上,我想要涵盖的案例是:

  1. 该服务在一个单独的线程中有一个长时间运行的任务。
  2. 客户端连接数达到零。
  3. 由于子线程仍在运行,服务尚未被终止。

    3-1。子线程完成,然后服务被终止。

    3-2。子线程正在运行时,新客户端绑定。所以服务一直在运行。

1 个答案:

答案 0 :(得分:1)

这正是以startService()开头的Service的工作方式。 通常,在每次绑定服务之前,使用该调用启动服务。

stopSelf()Context.stopService()会立即停止服务,或者只要所有打包机都无限制就停止服务。