tipos studio start_sticky servicios servicio saber example esta ejemplo create corriendo como android android-intent android-service android-intentservice

servicios - start_sticky android studio



IntentService''s onHandleIntent(IntenciĆ³n) obtiene un argumento nulo (2)

Consulte la documentación de Android para IntentService.onStartCommand .

[La intención] puede ser nula si el servicio se reinicia después de que su proceso haya desaparecido, y anteriormente había devuelto algo excepto START_STICKY_COMPATIBILIDAD.

El comportamiento de reinicio se puede controlar hasta cierto punto con IntentService.setIntentRedelivery

Estoy usando IntentService para ejecutar un servicio en segundo plano para mi aplicación en Android. Curiosamente recibo muchos informes de fallas con casos donde el intento pasado a onHandleIntent es nulo. Ni siquiera estoy seguro de cómo esto es posible y parece extremadamente extraño. ¿Alguien puede sugerir por qué esto podría estar pasando?

STACK_TRACE

java.lang.NullPointerException at com.example.MyService.onHandleIntent(MyService.java:466) at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.os.HandlerThread.run(HandlerThread.java:61)

Línea no 466 en mi archivo de servicio donde excepción de puntero nulo:

465 protected void onHandleIntent(Intent intent) { 466 Bundle data = intent.getExtras();

El servicio se inicia como:

serviceIntent = new Intent(this, MyService.class); serviceIntent.putExtra("ip", ip); serviceIntent.putExtra("port", port); startService(serviceIntent);

Editar: ahora me doy cuenta de que podría estar haciendo un uso indebido de IntentServices. Cuando inicio el servicio empiezo algunos hilos de trabajo desde onHandleIntent () que continúan ejecutándose incluso después de que onHandleIntent () regrese. Y comuníquese con los hilos vinculando el servicio y llamando a las funciones / devoluciones de llamada de los miembros. Examinaré el uso de una mejor manera de utilizar los servicios para este fin, mientras tanto, todavía no entiendo cómo es nula la intención de pasar. Solo puedo sospechar que el sistema Android está llamando aHandleIntent por sí mismo con un intento nulo que parece extraño todavía. ¿Alguien puede explicar por qué el sistema Android podría llamarlo de esa manera?


También estaba obteniendo nulo Intención dentro de onHandleIntent . Y la razón era que estaba pasando un objeto parcelable dentro de ese intento. No podía entender la razón, pero la conseguí funcionando después de no pasar el objeto parcelable.