2017-09-11 5 views
1

J'ai une boîte de dialogue personnalisée que je veux afficher après que l'utilisateur a cliqué sur la notification Push. J'utilise FirebaseMessagingService ici.Comment afficher une boîte de dialogue personnalisée lorsque l'application arrive au premier plan après avoir cliqué sur Notification push

Ci-dessous est mon code pour recevoir des notifications push. Je crée une intention et je la diffuse.

@Override 
public void onMessageReceived(RemoteMessage remoteMessage) { 
    super.onMessageReceived(remoteMessage); 

    if (remoteMessage.getData().size() > 0) { 
     Intent intent = new Intent(Cons.INTENT_FILTER); 

     try { 
      // getting my data here 
      Bundle bundle = new Bundle(); 
      bundle.putSerializable(key, data); 
      intent.putExtras(bundle); 
     } 
     catch (Exception e){ 

     } 
     sendBroadcast(intent); 
    } 

} 

Dans mon activité de base, je me sers BroadcastReceiver pour recevoir l'intention et afficher la boîte de dialogue.

private BroadcastReceiver myReceiver = new BroadcastReceiver() { 
    @Override 
    public void onReceive(Context context, Intent intent) { 

     FragmentTransaction transaction = getFragmentManager().beginTransaction(); 
     DialogFragment dialogFragment = new CustomDialog(); 
     Bundle bundle = new Bundle(); 
     // I am getting data from intent. 
     bundle.putSerializable(key, data); 
     dialogFragment.setArguments(bundle); 
     dialogFragment.show(transaction, "dialog"); 
    } 
}; 

Je peux voir la boîte de dialogue avec toutes les données si l'application est en premier plan. Ce code ne fonctionne pas si l'application est en arrière-plan ou si l'application n'est pas en cours d'exécution.

J'ai essayé de chercher des solutions qui disent obtenir l'état de fonctionnement de l'application et mettre quelques conditions si en conséquence. Je veux savoir si une autre solution existe. Merci.

Répondre

0

Faites simplement l'activité comme une boîte de dialogue et utilisez-la.

Set thème de dialogue à votre activité:

<activity name=".MyDialogActivity" android:theme="Theme.AppCompat.Dialog"/>

+0

Je ne veux pas montrer mon activité de dialogue. S'il vous plaît lire ma question attentivement. Merci. – Pooja

+0

Je connais votre exigence. vous ne pouvez pas afficher de dialogue sans activité. Créer une activité au lieu de DialogFragment. –

+0

J'ai déjà une activité. Mon deuxième morceau de code est dans Activité. – Pooja