181 votes

Clic de notification : activité déjà ouverte

J'ai une application avec des notifications qui ouvrent une certaine activité si je clique dessus. Je veux que, si je clique sur la notification et que l'activité est déjà ouverte, ce soit no recommencé, mais juste amené à l'avant.

Je pensais que je pouvais le faire avec le drapeau FLAG_ACTIVITY_BROUGHT_TO_FRONT o FLAG_ACTIVITY_REORDER_TO_FRONT mais il continue à l'ouvrir à nouveau, ce qui fait que j'ai l'activité deux fois.

Voici mon code :

event_notification = new Notification(R.drawable.icon,
            mContext.getString(R.string.event_notif_message), System.currentTimeMillis()); 
Intent notificationIntent = new Intent(mContext, EventListActivity.class);
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);
sendNotification(event_notification, notificationIntent, mContext.getString(R.string.event_notif_title),
                body, Utils.PA_NOTIFICATIONS_ID);

Puis-je le gérer avec des drapeaux ou dois-je stocker une variable dans SharedPreferences pour vérifier s'il est ouvert ou non ?

Merci !

1 votes

J'utilise intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP|Intent.FLAG_ACTIVITY_NO_HISTORY ) ;

-1voto

Manjunath Points 19
Intent intent = new Intent(this, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent contentIntent = PendingIntent.getActivity(this, new Random().nextInt(), intent, 0);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X