我实现了一个Dependency Service以在xamarin表单应用程序中显示警报框。当我在android中调用警报框时,我的应用程序崩溃了。
这是我的代码
Android.App.AlertDialog.Builder _dialog = new AlertDialog.Builder(Android.App.Application.Context);
AlertDialog _alertDialog = _dialog.Create();
_alertDialog.SetTitle("Unauthorized");
_alertDialog.SetMessage("Please login again to continue using the App);
_alertDialog.SetButton("OK", (c, ev) => { CloseApp(); });
_alertDialog.Show();
它抛出一个异常:-无法添加窗口-令牌null不适用于android中的应用程序。
如何解决此问题,请帮助我
答案 0 :(得分:0)
无法添加窗口-令牌null无效;您的活动正在进行吗?
您正在使用应用程序上下文,并且需要使用基于活动的上下文。
因此,您需要在Forms的依赖类中使用当前Activity的上下文,可以通过多种方法获取它。 MainActivity上的静态变量,使用“ CurrentActivityPlugin”等。
作为快速解决方案,请在您的static
类中添加一个 MainActivity
上下文变量,并将其设置为OnResume
替代。
public static Context context;
protected override void OnResume()
{
context = this;
base.OnResume();
}
然后将您的上下文更改为该静态上下文:
Android.App.AlertDialog.Builder _dialog = new Android.App.AlertDialog.Builder(MainActivity.context);