Bonjour à tous, Je mets en œuvre une notification dans un service qui, une fois cliquée sur la notification lorsqu'elle apparaît, ouvre une activité. J'ai ce code dans ma classe de service à l'intérieur d'une runnable qui s'exécute en continu toutes les quelques secondes :
NotificationCompat.Builder builder = new NotificationCompat.Builder(this)
.setSmallIcon(android.R.drawable.ic_dialog_email)
.setContentTitle(notificationTitle)
.setContentText(notificationMessage);
NotificationCompat.BigTextStyle bigText = new NotificationCompat.BigTextStyle();
builder.setStyle(bigText);
Intent resultIntent = new Intent(this, openemailactivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, resultIntent, PendingIntent.FLAG_UPDATE_CURRENT);
builder.setContentIntent(pendingIntent);
Notification notification = builder.build();
notification.flags = Notification.FLAG_AUTO_CANCEL;
NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this);
notificationManager.notify(0, notification);
Dans mon activité de notification appelée "openemailactivity", j'ai un bouton qui contient un code pour renvoyer l'utilisateur vers l'activité principale appelée "MainActivity" :
btnReturnToMainScreen.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
}
});
Tout fonctionne bien jusqu'à ce que je redémarre mon téléphone Android, le service se charge au démarrage (comme prévu) et génère une notification, puis lorsque je clique dessus. Ensuite, lorsque je clique dessus, l'activité "openemailactivity" s'ouvre également comme prévu, puis je clique sur le bouton qui ouvre "MainActivity" (le code ci-dessus) et cela fonctionne bien.
Et maintenant le problème commence !
Après que cette autre activité soit ouverte ("MainActivity"), et que la notification apparaisse à nouveau par le service (le minuteur de notification\le contrôle s'exécute dans un Handler\Runnable qui s'exécute en continu) - et lorsque je clique sur la notification elle-même qui a été créée - l'activité qu'elle devrait appeler ("openemailactivity") n'est plus appelée ! à la place - la dernière activité appelée apparaît ("MainActivity"), ce qui est incorrect !
Le problème commence seulement lorsque je redémarre mon téléphone, le service se charge au démarrage, une notification est générée, je clique dessus, elle ouvre la bonne activité, puis j'appelle le code du bouton (OnClickListener).
Je n'ai aucune idée de comment résoudre ce problème.
Que pensez-vous du problème ? Qu'est-ce que je fais de mal et comment puis-je le résoudre ?
Merci pour toute réponse.