¿Por qué mi trabajo no está comenzando?

Intento usar JobSchedulers para mi aplicación de chat (para el post de envío asíncrono):

val job = dispatcher.newJobBuilder() .setService(BackgroundJobService::class.java) .setTag(BackgroundJobService.TASKTAG_SEND_MESSAGE) .setReplaceCurrent(false) .setConstraints(Constraint.ON_ANY_NETWORK) .setExtras(bundle) .setTrigger(Trigger.executionWindow(0, 1)) .build() dispatcher.mustSchedule(job) 

Y agrega mi service en manifiesto:

 <service android:exported="false" android:name=".data.background.service.BackgroundJobService"> <intent-filter> <action android:name="com.firebase.jobdispatcher.ACTION_EXECUTE"/> </intent-filter> </service> 

Escribo este JobService y no se llama onCreate () y no se llama onDestroy ()

 class BackgroundJobService : JobService() { companion object { val TASKTAG_SEND_MESSAGE = "send_message" } @Inject lateinit var webSocket: IRxWebSocket var subscribe: Disposable? = null override fun onCreate() { super.onCreate() App.appComponent.inject(this) subscribe = webSocket.connect().subscribe({}, {}) } override fun onStartJob(job: JobParameters?): Boolean { return true // Debug point here } override fun onStopJob(job: JobParameters?): Boolean { return true } override fun onDestroy() { super.onDestroy() subscribe?.dispose() } } 

¡Pero mi onStartJob no llama! ¿Dónde está mi error? Algo que veo post "Los services de Google Play se han detenido".

Su statement manifiesta es incorrecta: debe declarar que los services de trabajo requieren un permiso específico que solo el sistema operativo puede usar. De la documentation JobService :

Los services de trabajo deben estar protegidos con este permiso:

<service android:name="MyJobService" android:permission="android.permission.BIND_JOB_SERVICE" >

Si se declara un service de trabajo en el manifiesto pero no está protegido con este permiso, el SO ignorará ese service.

Debo poner en set con

 bundle.putString("TAG", gson.toJson(object)) 

pero no

 bundle.putParcelable("TAG", object) 
  • Java modifica el contenido de la class kotlin a nulo
  • Diferencia entre ByteArray y Array <Byte> en kotlin
  • Patrón de constructor en Kotlin
  • Método de presentador de Fragmentos de llamada de Actividad
  • ¿Cómo reemploop los espacios en blanco duplicates en una cadena en Kotlin?
  • Importación de jarras en kotlin REPL
  • Kotlin: cómo pasar la matriz a la anotación de Java
  • ¿Clase interna dentro de su superclass abstracta en Kotlin?
  • Sitio de Android, agregando classs de datos de la biblioteca a la database
  • Cómo funciona el borrado de types
  • Tiempo de ejecución obsoleto de Kotlin