0

J'ai une activité qui effectue une fonction de téléchargement. L'activité fera apparaître une boîte de dialogue de progression et désactivera l'interaction de l'utilisateur lors du téléchargement, ainsi que la création d'une notification de progression. Je souhaite que l'utilisateur puisse cliquer sur la notification et renvoyer l'utilisateur à l'activité affichant la boîte de dialogue affichant la progression et l'interaction de l'utilisateur désactivée (essentiellement ce qui se passe lorsque l'utilisateur accède à l'écran d'accueil, puis rouvre le application).Comment restaurer les actions d'activité précédentes sur Notification Cliquez sur

Mes tentatives actuelles semblent relancer l'activité, le téléchargement est toujours en cours, mais la boîte de dialogue a disparu et l'interaction de l'utilisateur est désactivée. Comment puis-je réparer cela?

Mes approches:

action Set intention

private static void buildNotification() 
{ 
    //create intent for onClick 
    Intent resultIntent = new Intent(activity, activity.GetType()); 
    resultIntent.SetAction(Intent.ActionMain); 
    resultIntent.AddCategory(Intent.CategoryLauncher); 
    PendingIntent resultPendingIntent = PendingIntent.GetActivity(activity, 0, resultIntent, PendingIntentFlags.UpdateCurrent); 

    //set builder 

    builder.SetContentIntent(resultPendingIntent); 
    notificationManager = activity.GetSystemService(Context.NotificationService) as NotificationManager; 
} 

les flags intention

private static void buildNotification() 
{ 
    //create intent for onClick 
    Intent resultIntent = new Intent(activity, activity.GetType()); 
    resultIntent.SetFlags(ActivityFlags.SingleTop | ActivityFlags.ClearTop); 
    PendingIntent resultPendingIntent = PendingIntent.GetActivity(activity, 0, resultIntent, PendingIntentFlags.UpdateCurrent); 

    //set builder 

    builder.SetContentIntent(resultPendingIntent); 
    notificationManager = activity.GetSystemService(Context.NotificationService) as NotificationManager; 
} 

Répondre

1

J'ai fini par mettre juste SingleTop drapeau sur l'intention. Espérons que cela aide quelqu'un:

private static void buildNotification() 
{ 
     //create intent for onClick 
    Intent resultIntent = new Intent(activity, activity.GetType()); 
    resultIntent.SetFlags(ActivityFlags.SingleTop); 
    PendingIntent resultPendingIntent = PendingIntent.GetActivity(activity, 0, resultIntent, PendingIntentFlags.UpdateCurrent); 

    //set builder 

    builder.SetContentIntent(resultPendingIntent); 
    notificationManager = activity.GetSystemService(Context.NotificationService) as NotificationManager; 
} 

Par la façon dont je me sers Xamarin.Android