xamarin - 事件总线 Xamaring。使用反射未找到自定义活动方法
问题描述
我在我的 Xamarin Android 项目中添加了 EventBus 作为绑定库。我可以编译没有错误,但是当我尝试注册时,我收到以下错误:
这是活动的代码
[Activity(Icon = "@mipmap/ic_launcher"]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
Forms.Init(this, savedInstanceState);
Xamarin.Essentials.Platform.Init(this, savedInstanceState);
CrossCurrentActivity.Current.Init(this, savedInstanceState);
LoadApplication(new App());
EventBus.Default.Register(this);
}
protected override void OnDestroy()
{
base.OnDestroy();
EventBus.Default.Unregister(this);
}
[Subscribe]
public void onEvent(DeviceConnectionEvent my_event)
{
throw new NotImplementedException();
}
protected override void OnActivityResult(int requestCode, Result resultVal, Intent data)
{
if (requestCode == 1)
{
wifiManagerInstance.onNetworkDataReceived();
}
base.OnActivityResult(requestCode, resultVal, data);
}
}
当 eventbus 使用反射时,似乎没有检测到我的方法
methods = findState.clazz.getDeclaredMethods();
检测活动的其他方法如下图所示。
有什么我可以做的吗?
提前致谢。
解决方案
由于我没有 的绑定库,因此无法对其进行测试,但是您可以在使用属性EventBus
时检查您的包是否正确导入。[Subscribe]
在这里你应该使用org.greenrobot.eventbus.Subscribe;
而不是com.google.common.eventbus.Subscribe;
我想你也可以使用MessagingCenter来做你想做的事。
推荐阅读
- javascript - JS - 从对象获取数组
- python - 在python中反转线性同余生成器的代码
- docker - 如何避免在 docker 容器中运行的 Vuejs 出现 CORS 错误?
- python - Python 无法正确读取来自少数电子邮件域(例如 hotmail)的响应
- javascript - React Ref 对象在第二次调用后自行重置
- vb.net - 迭代字典,同时修改它的值(但不是它的键)
- ubuntu - Ubuntu 20.04 Dockerfile 得到 E: Unable to locate package yum 错误
- php - 可以从枚举的 HTML INPUT 值创建数字索引的 php 数组,而无需一一分配吗?
- python - 如何从用 Python 调用的外部程序获取输出?
- c# - 为什么限制我的游戏对象移动到相机框架会阻止移动?