¿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) 
  • ¿Es posible inyectar en campo un adaptador de vista de reciclador con Dagger 2.11
  • Conversión de elementos Int de list que no producen caracteres Kotlin
  • ¿Cómo se convierte la encoding win1251 a UTF8 dentro de Kotlin?
  • Kotlin: No se puede importar a pedido del object
  • ¿Por qué ocurre un error de lanzamiento inteligente en kotlin?
  • Obtener datos de un file JSON
  • ¿Qué es un module de Kotlin?
  • IOException: AsyncTask Image Descargar Kotlin Android (Bad File Descriptor)
  • ¿Cómo almacenar datos json cuando uso Android Studio 3.0?
  • La compilation de kapt falla con el procesador Android Dagger
  • Kotlin - Extensión para la class final