推迟 Android 绑定服务的销毁

Postpone destruction of Android Bound Service

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

然而,在这一点上,我的服务在客户端断开连接后最多 1 分钟内可能仍有另一个线程 运行。我担心的是,如果我在我的服务被销毁之前加入这个线程,销毁就会延迟,它将阻止创建新服务,丢弃新的客户端连接。这是真的?有没有办法推迟绑定服务的销毁? (就像在工作线程启动时向服务添加假绑定计数并在线程结束时减去。)

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

  1. 该服务在单独的线程中有一个长运行任务。
  2. 客户端连接数为零。
  3. 服务还没有被杀死,因为子线程还在运行.

    3-1。子线程做完了,然后服务就杀了。

    3-2。当子线程是 运行 时,一个新的客户端绑定。所以服务保持 运行.

这正是以 startService() 开头的 Service 的工作原理。 通常在每次绑定到服务之前通过该调用启动服务。

stopSelf()Context.stopService() 将立即停止服务或一旦所有边界都未绑定。