gpt4 book ai didi

c# - Xamarin - 尝试显示 toast 或从服务启动事件时出现空引用异常

转载 作者:太空宇宙 更新时间:2023-11-03 15:20:29 26 4
gpt4 key购买 nike

尝试显示 toast 和启动新事件均失败。必须有办法使这项工作。有没有办法通知 UI 正在发生的事情、事件或其他事情?

现在我只能将有关消息的信息记录到控制台输出。

上下文本身不为空,但其他可能与它相关的东西导致了空引用异常。

这是我的代码:

[Service(Exported = false), IntentFilter(new[] { "com.google.android.c2dm.intent.RECEIVE" })]
class MyGcmListenerService : GcmListenerService
{
public override void OnMessageReceived(string from, Bundle data)
{
string msg = data.GetString("message");

// this fails
Toast.MakeText(this, msg, ToastLength.Long).Show();

// this fails too
Intent pa = new Intent(this, typeof(PopupActivity));
pa.AddFlags(ActivityFlags.NewTask);
StartActivity(pa);
}


}

最佳答案

这是上下文错误。这是空的,因此你得到一个空的异常指针。它为空,因为它在服务中而不是事件中。

您应该尝试使用 Application.Context 而不是 this。它在 Xamarin.Droid 中是静态的,应该返回上下文。

(注意我不能测试是atm)

关于c# - Xamarin - 尝试显示 toast 或从服务启动事件时出现空引用异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37570939/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com