studio - service android
NullPointerException al llamar al servicio en onResume (1)
Intento realizar una llamada a un servicio y, en función de la respuesta, redirigir al usuario a una actividad diferente (un inicio de sesión).
Si espero hacer esto hasta que digamos, haga clic en un botón, entonces funciona bien (ya que el servicio está vinculado), pero si lo hago en Reanudar, entonces obtengo la siguiente excepción:
ERROR/AndroidRuntime(2226): FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to resume activity {...MyActivity}:
java.lang.NullPointerException
y mi código es:
FooService fooService;
@Override
protected void onStart() {
super.onStart();
Intent intent = new Intent(this, FooService.class);
bindService(intent, fooServiceConnection, Context.BIND_AUTO_CREATE);
}
@Override
protected void onResume() {
//I would assume the service would have bound by now?
super.onResume();
doSomething();
}
¿Qué te hace pensar que fooService
existe en el punto de onResume()
?
La llamada a bindService()
es asincrónica. Sucederá cuando suceda. No se puede hacer algo doSomething()
hasta que se onServiceConnected()
, y onServiceConnected()
no se haya invocado antes de que se onResume()
.
Y, si get()
en fooService
está haciendo E / S de red, necesita volver a escribir su aplicación para moverla fuera del hilo principal de la aplicación y en un hilo de fondo.