J'implémente une notification locale pour mon application. problème: lorsque je clique sur la notification, cela ouvre l'application depuis le début. Mais je veux ouvrir l'application à partir du même écran où l'application est entrée en arrière-plan.
Solution que j'ai déjà essayée:
Intent intent = new Intent(this, SplashScreen.class); intent.setFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT); PendingIntent contentIntent = PendingIntent.getActivity(this, new Random().nextInt(), intent, 0);
J'ai essayé de nombreux paramètres d'indicateur mais aucun d'entre eux ne fonctionne
et PendingIntent.FLAG_ONE_SHOT
ne fonctionne pas non plus.
J'ai également essayé à partir de ce lien Comment ouvrir une activité déjà ouverte au lieu d'en créer une nouvelle? mais cela ne fonctionne pas pour moi.
PLATEFORME: Android 9 (tarte), API minimum: 24.
Veuillez aider.
3 Réponses :
Si vous souhaitez simplement reprendre votre application sans démarrer d'activité spécifique, ne spécifiez simplement pas PendingIntent
. Dans ce cas, lorsque l'application sera fermée, Android démarrera votre application depuis le début au clic de l'utilisateur. Mais, si votre application est toujours en cours d'exécution, elle sera reprise.
Par exemple, vous pouvez utiliser le
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this) .setSmallIcon(R.drawable.notification_icon) .setContentTitle("My notification") .setContentText("Hello World!"); // Gets an instance of the NotificationManager service// NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); mNotificationManager.notify(1, mBuilder.build());
suivant
Non, cela ne fonctionne pas si vous ne pouvez pas setContentIntent () c'est juste une notification qui n'est pas cliquable
Qu'est-ce que vous essayez de faire peut être obtenu par de nombreuses façons.
Par expérience, la solution la plus facile à ce problème est de finir l'activité de départ avant d'être affichée. Si votre activité de départ n'apparaît que lorsque l'application commence, vous pouvez faire: p> Si ce n'est pas votre cas, vous pouvez créer une intention d'une "activité fantôme". L'activité fantôme peut fermer si l'application est exécutée ou peut rediriger vers l'activité de départ si l'application ne fonctionne pas. P> p>
Je ne peux pas faire ça car j'ai besoin de passer des paramètres qui ne sont pas bons….
Une autre manière plus complexe consiste à utiliser des liens profonds, il est spécialement recommandé si vous naviguez dans l'application après que l'utilisateur a cliqué sur la notification:
Vous pouvez également transmettre des informations via l'application à l'aide de diffusions: