gpt4 book ai didi

android - 在 Android 中被打包为 Intent 后从 Messenger 检索处理程序

转载 作者:行者123 更新时间:2023-11-30 03:38:45 26 4
gpt4 key购买 nike

注意:以下所有代码均基于 C#/Mono/Xamarin.Android。

我有一个后台服务,它会在某个时刻启动一个 Activity 并将其传递给一个处理程序,该处理程序包含在一个 Messenger 中:

intent.PutExtra("myHandler", new Messenger(handler));
context.StartActivity(intent);

当 Activity 开始时,我想从 Intent 中解开该处理程序,并在用户执行某些操作(例如单击按钮)时使用它将消息发送回服务。我尝试了显而易见的:

override void OnCreate(Bundle bundle)
{
...

myButton.Click += (s, e) => {
var messenger = (Messenger)Intent.GetParcelableExtra("myHandler");
var handler = (Handler)messenger.Binder; // This fails with invalid cast.

handler.SendMessage(new Message() { What = MyButtonClicked });
};
}

调试器告诉我 message.Binder 是 Handler 类型,但转换失败。谷歌没有发现我有任何帮助。我可能做错了什么,不是吗?

编辑:天哪,我以某种方式设法忽略了 Messenger.Send() 方法。显然,我应该使用它向包装的处理程序发送消息!

最佳答案

正确的方法是使用messenger.Send()方法。

关于android - 在 Android 中被打包为 Intent 后从 Messenger 检索处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16198657/

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