在我的应用程序中,我需要从后台线程调用alert方法。我需要从后台线程获取Context。在获取上下文时,我收到令牌null错误。这是我的代码
Handler h = new Handler();
BackgroService.Event += () =>
{
Action myAction = () =>
{
Dialog dialog = new Dialog(Application.Context);
Android.App.AlertDialog.Builder alert = new Android.App.AlertDialog.Builder(Application.Context, Resource.Style.AlertDialog);
alert.SetTitle("");
alert.SetMessage("MSG");
alert.SetPositiveButton(GetString(Resource.String.ok), (senderAlert, args) =>
{
//MyAction
dialog.Dismiss();
});
dialog = alert.Create();
dialog.Window.SetType(Android.Views.WindowManagerTypes.ApplicationPanel);
dialog.Show();
};
h.PostDelayed(myAction, 1000);
};
我正在使用Application.Context
,this
也无效。有没有人知道如何正确地做到这一点。
答案 0 :(得分:0)
我找到了一个解决方案,通过使用WindowManagerTypes作为Toast
来显示来自后台线程的警报browser.tabs.query({active: true, windowId: browser.windows.WINDOW_ID_CURRENT})
.then(tabs => browser.tabs.get(tabs[0].id))
.then(tab => {
console.info(tab);
});
答案 1 :(得分:0)
从后台线程调用
RunOnUiThread(() =>
{
//show the alert here (you can use the keyword 'this')
});