我正在与Xamarin合作。窗体上的一个项目,需要有一个后台服务,将查找日期来提醒用户一些重要的活动,但必须表现得像一个警报,像一个弹出页面或某种我可以做一些XAML和绑定从SQLite的一些信息片段。
我做了一个在后台工作的服务,我通过MessagingCenter做了一个订阅,一切都工作得很好,我唯一不能做的就是从后台简单地打开设计的页面绑定,VM将完成其余的工作。
我花了5天时间四处寻找,但似乎没有任何工作…如果你能帮忙,我将不胜感激。
我找到了一个不同的解决方案。这里使用AlarmManager是一个非常简单的代码,它将启动新活动,我刚刚在app.xaml.cs中创建了一个新的构造函数,将打开提醒页面作为主页面。LoadApp将从ReminderActivity调用,但是使用LoadApplication(新应用程序(true));
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);
}
}