我有一个处理多个客户端连接的Android绑定服务。如果我理解正确,如果没有客户端连接,Android会终止服务。
但是,此时,我的服务可能仍会在客户端断开连接后运行长达1分钟的另一个线程。我担心的是,如果我在销毁服务之前加入此线程,则销毁会延迟,并且会阻止创建新服务,从而丢弃新的客户端连接。这是真的?有没有办法推迟绑定服务的销毁? (比如在工作线程启动时向服务添加伪绑定计数,并在线程结束时减去。)
基本上,我想要涵盖的案例是:
由于子线程仍在运行,服务尚未被终止。
3-1。子线程完成,然后服务被终止。
或
3-2。子线程正在运行时,新客户端绑定。所以服务一直在运行。
答案 0 :(得分:1)
这正是以startService()
开头的Service
的工作方式。
通常,在每次绑定服务之前,使用该调用启动服务。
stopSelf()
或Context.stopService()
会立即停止服务,或者只要所有打包机都无限制就停止服务。