【问题标题】:Postpone destruction of Android Bound Service推迟 Android Bound Service 的销毁
【发布时间】:2016-06-22 00:42:44
【问题描述】:

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

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

基本上,我要介绍的情况是:

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

    3-1。子线程完成,然后服务被杀死。

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

【问题讨论】:

  • IntentService 是一种可能的替代方案吗? IntentService

标签: java android service lifecycle


【解决方案1】:

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

stopSelf()Context.stopService() 将立即停止服务,或者在所有边界都未绑定后立即停止。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-15
    • 1970-01-01
    • 2022-01-03
    • 1970-01-01
    • 2012-03-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多