JobIntentService Идентификатор задания глобально уникален или ограничен классом? - PullRequest
0 голосов
/ 14 февраля 2020

Документация подразумевает, что она распространяется по классу обслуживания:

Уникальный идентификатор задания для планирования; должно быть одинаковым значением для всех работ, поставленных в очередь для одного и того же класса.

Однако у меня есть две службы с JOB_ID и enqueWork():

  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. решает проблему.

Если это НЕ ограничено классом обслуживания, это ужасно, так как каждый сервис должен знать о реализации всех других сервисов в том же приложении. .

?

...