2017-08-07 1 views
-1

J'essaye d'envoyer une diffusion dynamique des services à l'activité. Lorsque j'envoie Broadcast à partir du service Notification.class, cette diffusion est reçue par activité. Mais lorsque j'essaie d'envoyer un service de diffusion de sendData.class, ces données ne sont pas reçues par l'activité. Je ne sais pas ce qui est arrivé. Ceci est mon code d'activité: -Pourquoi BroadcastReceiver n'ira pas ailleurs si la condition dans Android

 protected void onCreate(Bundle savedInstanceState) { 
      . 
      . 
      . 
      mIntentFilter = new IntentFilter(); 

      mIntentFilter.addAction(mBroadcastStringAction); 

      . 
      . 
      . 
      . 
      . 


     } 


     private BroadcastReceiver mReceiver = new BroadcastReceiver() { 
      @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) 
      @Override 
      public void onReceive(Context context, Intent intent) { 
// This Broadcast is called by getData.class service and not working :(
       if(intent.getAction().equals(PLAY_MUSIC)){ 

        Toast.makeText(context, "Broadcast Recieved", Toast.LENGTH_SHORT).show(); //Not showing Toast message also 
        String action = intent.getStringExtra("play"); 
        if(action.equals("true")) { 
         playBtnClick(); 
        } 
       } 

//This Broadcast is Called by Notification.class & Working Properly 
       if (intent.getAction().equals(mBroadcastStringAction)) { 
        int position = intent.getIntExtra("position", 0); 
        int duration = intent.getIntExtra("duration", 0); 
        sb.setMax(duration); 
        sb.setProgress(position); 
        setSongDetails(); 

       } 
      } //I have also try else if condition also 
     }; 

     @Override 
     protected void onResume() { 
      super.onResume(); 

      registerReceiver(mReceiver, mIntentFilter); 

     } 

     @Override 
     protected void onPause() { 

      super.onPause(); 

     } 

     @Override 
     protected void onDestroy() { 

      super.onDestroy(); 
     } 



    } 

Ceci est mon Notification.class pour envoyer une diffusion

Intent broadcastIntent = new Intent(); 
       broadcastIntent.setAction(MainPlayer.mBroadcastStringAction); 
       broadcastIntent.putExtra("duration", mediaPlayer.getDuration()); 
       broadcastIntent.putExtra("position", mediaPlayer.getCurrentPosition()); 
       sendBroadcast(broadcastIntent); 

Ceci est mon getData.class

J'ai essayer tant de fois . Mais ça ne fonctionne pas.

Répondre

1

Ajouter MUSIC_PLAYER à filtre dans l'intention onCreate ci-dessous

mIntentFilter = new IntentFilter(); 
mIntentFilter.addAction(mBroadcastStringAction); 
mIntentFilter.addAction(MUSIC_PLAYER);