Я пытаюсь исправить существующий Xamarin. Android Приложение на основе форм для работы с Android 10 устройствами.
У нас есть только одно действие в приложении, и мы используем навигацию по формам
. У нас есть фоновая служба, которая может запрашивать основное действие для sh новой страницы и прерывать работу пользователя на устройствах до 10.
Поскольку мы больше не можем прерывать пользователя, выполняющего Android 10, мы решили воспользоваться рекомендованным Google маршрутом . Я нашел этот предыдущий ответ для примера реализации.
В основном код до Android 10 выглядит так:
// post on ui thread
Android.App.Application.SynchronizationContext.Post(
_ =>
{
Intent intent = new Intent(this.applicationContext, typeof(MainActivity));
// intent.AddFlags(ActivityFlags.NoHistory);
intent.AddFlags(ActivityFlags.FromBackground);
intent.AddFlags(ActivityFlags.NewTask);
this.applicationContext.StartActivity(intent);
},
null);
Новый код становится:
var builder = new NotificationCompat.Builder(context: this.applicationContext, channelId: channelId);
builder.SetContentTitle(title: notification.Title);
builder.SetContentText(text: notification.Text);
builder.SetSmallIcon(icon: this.resourceManager.GetImage(resourceName: notification.Icon));
builder.SetPriority(pri: notification.Priority);
builder.SetAutoCancel(autoCancel: true);
Intent nextScreen = new Intent(this.applicationContext, typeof(MainActivity));
PendingIntent intent = PendingIntent.GetActivity(
context: this.applicationContext,
requestCode: 0,
intent: nextScreen,
flags: PendingIntentFlags.OneShot);
builder.SetFullScreenIntent(intent: intent, highPriority: true);
this.notificationManager.Notify(id: notification.Id, notification: builder.Build());
Но новый код не работает.
Что происходит, так это то, что уведомление отображается в области уведомлений, а не в полноэкранном режиме.
Я под впечатлением что мне нужно использовать новое Activity.
Могу ли я использовать приложение root activity?