Xamarin.Forms 来自后台服务的弹出页面
Xamarin.Forms Popup Page from background service
我正在与 Xamarin.Forms 合作一个项目,该项目需要一个后台服务,该服务将查找日期以提醒用户一些重要的 activity,但必须表现得像警报,就像一个弹出页面或某种我可以制作一些 XAML 并绑定来自 SQLite 的一些信息的地方。
我做了一个在后台工作的服务,我通过 MessagingCenter 进行了订阅,一切都运行良好,我唯一不能做的就是从后台简单地打开设计的页面绑定和VM 将完成剩下的工作。
我花了 5 天时间四处搜索,但似乎没有任何效果...
我们将不胜感激。
我找到了解决问题的不同方法。这里使用 AlarmManager 是一个非常简单的代码,它将启动新的 activity 我刚刚在 app.xaml.cs 中创建了一个新的构造函数,它将作为主页打开提醒页面。并且 LoadApp 将从 ReminderActivity 调用,但使用
LoadApplication(新应用程序(真));
void LoadAlarm()
{
var alarmIntent = new Intent(this, typeof(AlarmReceiver));
var pending = PendingIntent.GetBroadcast(this, 0, alarmIntent, PendingIntentFlags.UpdateCurrent);
var alarmManager = GetSystemService(AlarmService).JavaCast<AlarmManager>();
alarmManager.Set(AlarmType.ElapsedRealtime, SystemClock.ElapsedRealtime() + 600 * 1000, pending);
}
和
[BroadcastReceiver]
public class AlarmReceiver : BroadcastReceiver
{
public override void OnReceive(Context context, Intent intent)
{
intent = new Intent(Android.App.Application.Context, typeof(ReminderActivity));
intent.AddFlags(ActivityFlags.NewTask | ActivityFlags.ClearTask);
Android.App.Application.Context.StartActivity(intent);
}
}
我正在与 Xamarin.Forms 合作一个项目,该项目需要一个后台服务,该服务将查找日期以提醒用户一些重要的 activity,但必须表现得像警报,就像一个弹出页面或某种我可以制作一些 XAML 并绑定来自 SQLite 的一些信息的地方。
我做了一个在后台工作的服务,我通过 MessagingCenter 进行了订阅,一切都运行良好,我唯一不能做的就是从后台简单地打开设计的页面绑定和VM 将完成剩下的工作。
我花了 5 天时间四处搜索,但似乎没有任何效果... 我们将不胜感激。
我找到了解决问题的不同方法。这里使用 AlarmManager 是一个非常简单的代码,它将启动新的 activity 我刚刚在 app.xaml.cs 中创建了一个新的构造函数,它将作为主页打开提醒页面。并且 LoadApp 将从 ReminderActivity 调用,但使用 LoadApplication(新应用程序(真));
void LoadAlarm()
{
var alarmIntent = new Intent(this, typeof(AlarmReceiver));
var pending = PendingIntent.GetBroadcast(this, 0, alarmIntent, PendingIntentFlags.UpdateCurrent);
var alarmManager = GetSystemService(AlarmService).JavaCast<AlarmManager>();
alarmManager.Set(AlarmType.ElapsedRealtime, SystemClock.ElapsedRealtime() + 600 * 1000, pending);
}
和
[BroadcastReceiver]
public class AlarmReceiver : BroadcastReceiver
{
public override void OnReceive(Context context, Intent intent)
{
intent = new Intent(Android.App.Application.Context, typeof(ReminderActivity));
intent.AddFlags(ActivityFlags.NewTask | ActivityFlags.ClearTask);
Android.App.Application.Context.StartActivity(intent);
}
}