2017-11-15 1 views
1

Ich versuche, zu bestimmten Bildschirm zu navigieren, wenn Benutzer auf Push-Benachrichtigung klicken. Es funktioniert gut, wenn die Anwendung im Hintergrund ausgeführt wird, aber wenn ich die Anwendung aus dem Hintergrund entferne, während ich auf die Push-Benachrichtigung klicke, navigiere ich zur ersten Seite der Anwendung und nicht zur bestimmten Seite. Bitte schlagen Sie eine Idee vor, um zu einer bestimmten Seite zu navigieren, wenn die Anwendung nicht auch im Hintergrund läuft.So behandeln Sie Xamarin android Push-Benachrichtigung Klick-Handler, wenn Anwendung nicht auf Backgroud ausgeführt wird

Antwort

1

I unten-Code verwendet und funktioniert gut für mich

Intent i = new Intent(context, typeof(SpecificActiivty)); 
i.SetFlags(ActivityFlags.SingleTop | ActivityFlags.ClearTop); 
PendingIntent intent = PendingIntent.GetActivity(context, 0, i, PendingIntentFlags.UpdateCurrent); 
builder.SetContentIntent(intent); 

MyEdited

namespace Example 
{ 
    [Service] 
    public class GcmService : GcmServiceBase 
    { 

     protected override void OnMessage(Context context, Intent intent) 
     { 
       NotificationCompat.Builder builder = new NotificationCompat.Builder(this); 
       Intent i; 
       DateTime date = DateTime.Now; 
       i = new Intent(context, typeof(SpecificActiivty)); 
       i.SetFlags(ActivityFlags.SingleTop | ActivityFlags.ClearTop); 
       PendingIntent intent = PendingIntent.GetActivity(context, 0, i, PendingIntentFlags.UpdateCurrent); 
       builder.SetContentIntent(intent); 
       builder.SetSmallIcon(Resource.Drawable.ic_notificationicon); 

       builder.SetAutoCancel(true); 
       Notification notification = builder.Build(); 
       builder.SetSound(Settings.System.DefaultNotificationUri); 
       Android.Net.Uri notify = RingtoneManager.GetDefaultUri(RingtoneType.Notification); 
       Ringtone r = RingtoneManager.GetRingtone(context, notify); 
       r.Play(); 
       NotificationManager nm = GetSystemService(Context.NotificationService) as NotificationManager; 
       int customid = date.Day + date.Month + date.Hour + date.Minute + date.Millisecond; 
       nm.Notify(customid, notification); 
     } 
    } 
} 

Hier Antwort SpecificActiivty ist, spezifische Seite, die Sie den Hahn der Mitteilung öffnen möchten

+0

Dank sunita, wo kann ich diesen Code hinzufügen und was ist diese spezifische Aktivität. – Deepak

Verwandte Themen