with studio que intent bindservice android service binding

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.