我正在尝试将推送通知集成到应用程序中。
我试图实现的行为是从后台唤醒应用程序并恢复到以前的状态。
但控件总是来protected override void OnCreate (Bundle bundle)
最初然后在点击通知消息而不是来时OnResume
到protected async override void OnResume().
因此,应用程序始终重新启动而不是唤醒。
如何在点击通知时唤醒应用而不是重新启动。?
以下是创建通知的方式。
private void CreateNotification(string title, string desc, string type)
{
Random random = new Random();
int id = random.Next(9999 - 1000) + 1000;
const int pendingIntentId = id;
const int notificationId = id;
var startupIntent = new Intent(this, typeof(MainActivity));
var stackBuilder = TaskStackBuilder.Create(this);
stackBuilder.AddParentStack(Java.Lang.Class.FromType(typeof(MainActivity)));
stackBuilder.AddNextIntent(startupIntent);
var pendingIntent =
stackBuilder.GetPendingIntent(pendingIntentId, PendingIntentFlags.OneShot);
var builder = new Notification.Builder(this)
.SetContentIntent(pendingIntent)
.SetContentTitle(title)
.SetContentText(desc)
.SetSmallIcon(Resource.Drawable.appicon);
var notification = builder.Build();
notification.Flags = NotificationFlags.AutoCancel;
var notificationManager =
GetSystemService(NotificationService) as NotificationManager;
notificationManager.Notify(notificationId, notification);
}
其他情况,例如应用未运行且处于前台的情况正在按预期工作。