1

Hier sind meine Fälle für die Benachrichtigung: Wenn Mitteilung ankommen, App könnte Vordergrund sein, Hintergrund, oder geschlossenAndroid Push-Benachrichtigung mit FCM

1. Für den Vordergrund: Wenn Benutzer tippen Sie auf Benachrichtigung, sollte app zeigen Hauptaktivität.

2. Für Hintergrund: Wenn Benutzer tippen Sie auf Benachrichtigung, App nach vorne bringen sollte und Haupttätigkeit zeigen sollte

3. Wenn App geschlossen wird: Wenn Benutzer tippen Sie auf Benachrichtigung, App sollte Öffnen und sollte Hauptaktivität anzeigen.

Wenn ich Absicht mit Intent.FLAG_ACTIVITY_SINGLE_TOP & PendingIntent mit PendingIntent.FLAG_ONE_SHOT festlege. Es funktioniert wie erwartet, aber wenn der Benutzer auf die Benachrichtigung klickt, ruft er die Methode Create der Hauptaktivität nicht auf.

private void showNotification() { 

     Intent intent = new Intent(this, DashboardActivity.class); 
     intent.putExtra(AppConstants.SCREEN, screen); 
     intent.putExtra(AppConstants.USER_ID, user_id); 
     intent.putExtra(AppConstants.TABLE_ID, table_id); 
     intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); 

     PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, 
      PendingIntent.FLAG_ONE_SHOT); 

    Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); 
    NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this) 
      .setSmallIcon(getNotificationIcon()) 
      .setContentTitle(getResources().getString(R.string.app_name)) 
      .setContentText(message) 
      .setAutoCancel(true) 
      .setSound(defaultSoundUri) 
      .setContentIntent(pendingIntent); 

    NotificationManager notificationManager = 
      (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 

    notificationManager.notify(0, notificationBuilder.build()); 
    } 

Wenn Sie Above Code betrachten, dann muss es eine Methode aus MainActivity(DashboardActivity), wenn der Benutzer tippen Sie auf Benachrichtigung ausgeführt werden.

Hinweise: Wenn App Vordergrund/Hintergrund ist, sollte sie nicht geschlossen und neu geöffnet werden. Es muss in der bestehenden App aktualisiert werden.

Ich hoffe, Sie verstehen meine Situation. Danke im Voraus.

Antwort

0

Wenn Benutzer auf eine Benachrichtigung tippen, die Absicht mit "Intent.FLAG_ACTIVITY_SINGLE_TOP" haben, wird onCreate Methode der Absicht nicht aufrufen. es wird ein Verfahren, wenn der Benutzer tippen Sie auf Benachrichtigung aufrufen, die unten geschrieben:

@Override 
protected void onNewIntent(Intent intent) {} 

Dank für das Lesen dieser Frage :)

Verwandte Themen