Xamarin c# Android通知在后台恢复活动

本文关键字:后台 恢复 活动 通知 Android Xamarin | 更新日期: 2023-09-27 18:13:23

我正在制作一个应用程序,在后台执行一些操作,并在特定情况下发送本地通知。

现在,当通知被点击时,我想恢复应用程序。

我在StackOverflow中看到三个线程,并尝试使用标志,但没有一个工作。

这是我尝试过的:

 Intent resultIntent = new Intent(this, typeof(MainActivity));
        TaskStackBuilder stackBuilder = TaskStackBuilder.Create(this);
        stackBuilder.AddParentStack(Java.Lang.Class.FromType(typeof(MainActivity)));
        stackBuilder.AddNextIntent(resultIntent);
        PendingIntent resultPendingIntent = 
            stackBuilder.GetPendingIntent(0, (int)PendingIntentFlags.CancelCurrent);
        Notification.Builder builder = new Notification.Builder(this)
            .SetContentTitle("Nuove Richieste")
            .SetContentText("Hai nuove richieste da visionare")
            .SetContentIntent(resultPendingIntent)
            .SetDefaults(NotificationDefaults.Sound | NotificationDefaults.Vibrate)
            .SetSmallIcon(Resource.Drawable.add)
            .SetPriority(1);
        Notification notification = builder.Build();
        NotificationManager notificationManager =
            GetSystemService(Context.NotificationService) as NotificationManager;
        const int notificationId = 0;
        notificationManager.Notify(notificationId, notification);

当通知被点击时,黑屏显示,怎么了?

感谢编辑:

问题是另一个,仍然是关于恢复活动,但问题是不同的:

我有一个TIMER每10秒执行一次数据库查询。如果这个计时器没有被杀死,就没有办法显示一个新的活动(或者恢复旧的活动)。当我创建通知时,我可以很容易地杀死计时器,这样问题就解决了。

顺便说一下,问题是当没有通知,但它不是问题的情况。我将开始另一个问题。

谢谢!

Xamarin c# Android通知在后台恢复活动

您只需取消您的活动,因此没有显示任何内容。

尝试使用:

PendingIntentFlags。UpdateCurrent

在你的代码:

PendingIntent resultPendingIntent =stackBuilder。GetPendingIntent (0,(int) PendingIntentFlags.UpdateCurrent);