9

文档暗示它的范围是每个服务类:

用于调度的唯一作业 ID;对于同一类排队的所有工作,必须是相同的值。

JOB_ID但是,我的, 和enqueWork()as有两个服务:

  companion object {
    private const val JOB_ID = 1

    fun enqueueWork(context: Context, action: String) {
      enqueueWork(context, Svc1::class.java, JOB_ID, Intent(action))
    }
  }

  companion object {
    private const val JOB_ID = 1

    fun enqueueWork(context: Context, action: String) {
      enqueueWork(context, Svc2::class.java, JOB_ID, Intent(action))
    }
  }

当我在启动时启动这两个服务时(可能大约在同一时间)Svc2运行 2 倍。将 的 JOB_ID更改Svc2为 2 即可解决问题。

如果它不受服务类的限制,那就太糟糕了,因为这意味着每个服务都需要了解同一个应用程序中每个其他服务的实现。

?

4

0 回答 0