Android: problemi con bindService () -> servizio è nullo

Sto avendo un problema con il servizio binding di un'attività. Ottengo playing_service == null. Non riesco a trovare quello che sto facendo male. Perché play_service null?

Classe MyActivity:

  • Come aggiungere MenuItem a SubMenu nella nuova navigazione di Google?
  • Mostra schermata di anteprima in nero nel task manager in ICS
  • CookieSyncManager :: createInstance () deve essere chiamato prima di CookieSyncManager :: getInstance ()
  • pila di sorso per il iphone e android
  • android EditText, problema di tastiera di textWatcher
  • Come posso get il nome del pacchetto di android lockscreen
  • private playService playing_service=null; private ServiceConnection service_conn=new ServiceConnection(){ public void onServiceConnected(ComponentName className, IBinder service) { LocalBinder binder=(LocalBinder)service; playing_service=binder.getService(); } public void onServiceDisconnected(ComponentName arg0) { // TODO Auto-generated method stub } }; public void playTrack(View view){ Intent i=new Intent(this,playService.class); i.setAction("com.c0dehunter.soundrelaxer.PLAY"); bindService(i,service_conn,Context.BIND_AUTO_CREATE); if(playing_service==null) //here I get true, //if I try to access playing_service I get NullPointerException } } 

    class playService:

     private final IBinder binder=new LocalBinder(); public int onStartCommand(Intent intent, int flags, int startId){ return 1; //dummy } @Override public IBinder onBind(Intent intent) { // TODO Auto-generated method stub return binder; } public class LocalBinder extends Binder{ public playService getService(){ return playService.this; } } 

  • Animazione di scala di Android in vista
  • ADB non riconosce Nexus 4 in Windows 7
  • Come modificare il colore del titolo della barra di azione nel codice
  • NoClassDefFoundError per la libreria .jar a runtime in Android Studio
  • "EOCD non trovato" con l'installazione di adb
  • In Java, come get le stringhe di giorni di settimana (dom, lun, ..., sab) con il locale di default del sistema (lingua)
  • One Solution collect form web for “Android: problemi con bindService () -> servizio è nullo”

    Il tuo servizio potrebbe non essere nullo poiché il binding di un servizio è un metodo asynchronous , quindi, invece di controllare la disponibilità del servizio dopo aver chiamato il metodo di bind, dovresti farlo nell'implementazione del servizio di connessione, ad esempio:

     private ServiceConnection service_conn=new ServiceConnection(){ public void onServiceConnected(ComponentName className, IBinder service) { LocalBinder binder=(LocalBinder)service; playing_service=binder.getService(); if(playing_service != null){ Log.i("service-bind", "Service is bonded successfully!"); //do whatever you want to do after successful binding } } public void onServiceDisconnected(ComponentName arg0) { // TODO Auto-generated method stub } }; 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.