Bonjour,

J'ai un problème bizarre, quand je recois une notification et quand je clique, je lance une activité qui affiche le detail des informations de cette notification, un truc très simple,
jusque la tout va bien, j'ai un bouton OK pour fermer mon activité et revenir au système, il fait bien l'action de fermer, mais mon activité disparait, mais elle reste toujours en arrière plan.

cela se passe uniquement quand l'application n'est pas ouverte la notification FCM mise en attente en arrière plan, si l'application est lancee, je n'ai pas de problème, mais la notification n'est pas traitée de la même façon, le onMessageReceived() du service renotify localement.

j'ai utilisé, finish finishAffiinty(), killprocess,System.exit(0), elle s'execute mais la tâche est toujours là, je peux meme relancer le kill plusieurs fois.

Je ne peux qu'utiliser l'icone systeme de fermeture de la fenetre. et la elle disparait. je n'arrive pas à lui dire de fermer et de quitter.

J'ai pensé au problème des flag quand l'activité est lancé par la notification, j'ai mis en commentaire tout mon appli

ca reste relativement classique j'ai essayé les flags new task et clear task


Mon activity dans le manifest android avec tous les flags nécessaire equivalent( "singleTop" FLAG_ACTIVITY_SINGLE_TOP, "noHistoyr" .FLAG_ACTIVITY_CLEAR_TOP ),
Dans le cas que la notification arrive alors que l'application n'est past ouverte, mais ca n'a pas d'effet au premier abord.

<activity android:name=".activity.XXX" android:label="XXX"
android:launchMode="singleTop" android:noHistory="true" android:clearTaskOnLaunch="true">


notification locale par mon service quand le message arrive de FCM (firebaes cloud messaging) dans mon application en cours d'execution. (fonctionne parfaitement dans ce cas d'usage)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
Intent intent = new Intent(this, NotificationRmScActivity.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |
                Intent.FLAG_ACTIVITY_SINGLE_TOP);
        intent.setAction(DETECTOR_REPORT);
        intent.addCategory(Intent.CATEGORY_DEFAULT);
 
        PendingIntent pendingIntent = PendingIntent.getActivity(this, 0 /* Request code */, intent,
                PendingIntent.FLAG_UPDATE_CURRENT);
 
        Uri defaultSoundUri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
        Notification.Builder notificationBuilder = new Notification.Builder(this)
                .setContentTitle(messageTitle)
                .setContentText(messageBody)
                .setAutoCancel(true)
                .setSound(defaultSoundUri)
                .setSmallIcon(R.mipmap.ic_launcher)
                .setContentIntent(pendingIntent);
 
 
        NotificationManager notificationManager =
                (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
 
        notificationManager.notify(1 /* ID of notification */, notificationBuilder.build());
Je sêche un peu et je suis à cours d'idée, sur un truc que je pensais pas bloquer.

Merci pour vos avis et vos liens

Je continu à chercher

cdt
JP