推迟 Android 绑定服务的销毁
Postpone destruction of Android Bound Service
我有一个处理多个客户端连接的 Android 绑定服务。如果我理解正确,Android 会在没有客户端连接时终止服务。
然而,在这一点上,我的服务在客户端断开连接后最多 1 分钟内可能仍有另一个线程 运行。我担心的是,如果我在我的服务被销毁之前加入这个线程,销毁就会延迟,它将阻止创建新服务,丢弃新的客户端连接。这是真的?有没有办法推迟绑定服务的销毁? (就像在工作线程启动时向服务添加假绑定计数并在线程结束时减去。)
基本上,我要涵盖的案例是:
- 该服务在单独的线程中有一个长运行任务。
- 客户端连接数为零。
服务还没有被杀死,因为子线程还在运行.
3-1。子线程做完了,然后服务就杀了。
或
3-2。当子线程是 运行 时,一个新的客户端绑定。所以服务保持 运行.
这正是以 startService()
开头的 Service
的工作原理。
通常在每次绑定到服务之前通过该调用启动服务。
stopSelf()
或 Context.stopService()
将立即停止服务或一旦所有边界都未绑定。
我有一个处理多个客户端连接的 Android 绑定服务。如果我理解正确,Android 会在没有客户端连接时终止服务。
然而,在这一点上,我的服务在客户端断开连接后最多 1 分钟内可能仍有另一个线程 运行。我担心的是,如果我在我的服务被销毁之前加入这个线程,销毁就会延迟,它将阻止创建新服务,丢弃新的客户端连接。这是真的?有没有办法推迟绑定服务的销毁? (就像在工作线程启动时向服务添加假绑定计数并在线程结束时减去。)
基本上,我要涵盖的案例是:
- 该服务在单独的线程中有一个长运行任务。
- 客户端连接数为零。
服务还没有被杀死,因为子线程还在运行.
3-1。子线程做完了,然后服务就杀了。
或
3-2。当子线程是 运行 时,一个新的客户端绑定。所以服务保持 运行.
这正是以 startService()
开头的 Service
的工作原理。
通常在每次绑定到服务之前通过该调用启动服务。
stopSelf()
或 Context.stopService()
将立即停止服务或一旦所有边界都未绑定。