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.
Je ne veux pas montrer mon activité de dialogue. S'il vous plaît lire ma question attentivement. Merci. – Pooja
Je connais votre exigence. vous ne pouvez pas afficher de dialogue sans activité. Créer une activité au lieu de DialogFragment. –
J'ai déjà une activité. Mon deuxième morceau de code est dans Activité. – Pooja