0
votes

Impossible d'ouvrir existant qui exécute une activité lorsque vous cliquez sur la notification locale

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.


0 commentaires

3 Réponses :


0
votes

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


1 commentaires

Non, cela ne fonctionne pas si vous ne pouvez pas setContentIntent () c'est juste une notification qui n'est pas cliquable



0
votes

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: xxx

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.


1 commentaires

Je ne peux pas faire ça car j'ai besoin de passer des paramètres qui ne sont pas bons….



0
votes

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:


0 commentaires