问题标签 [greenrobot-eventbus-3.0]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
58 浏览

java - 最近一直在看很多第三方库代码,看到这段代码让我很困惑

所以这是来自 EventBus getDefault() 静态方法的一段代码,它返回 EventBus 类的静态实例。

我看到代码首先检查实例是否为空,然后在同步块中再次进行相同的检查。这是为什么。

如果我这样写怎么办。

我的版本有问题吗?我在这里缺少什么?

0 投票
1 回答
57 浏览

java - 如何在 Android 中第一次使用 EventBus

在我的应用程序中,我有 2 activityActivityActivity
对于 show ActivityB用户应该从ActivityA去。
activityB中,我有一个button,当单击此button finish Activity B并将一种方法调用到Activity A时,我想要。
对于这项工作,我写了下面的代码:

对于调用ActivityA 的方法,我编写以下代码:

点击时Button,调用上面的方法!
但是当点击时Button,总是调用Activity A方法!
我的意思是:点击后button,甚至转到ActivityC、E等等……当点击返回button转到ActivityA时,再次调用 A 的上述Activity方法
我只想在buttonActivityB中单击时调用上述方法,但并非总是如此!

我该如何解决?

0 投票
1 回答
57 浏览

android - AppCompatActivity 如何使用 EventBus 与 FragmentActivity 进行通信?

问题,AppCompatActivity 如何使用 EventBus 与 FragmentActivity 进行通信?

结果发现,FragmentActivity 可以和 AppCompatActivity 通信,调用了 onEvent 方法,但是如果我们把通信路径切换到 AppCompatActivity 和 FragmentActivity 通信,永远不会调用 onEvent 方法。

0 投票
3 回答
123 浏览

java - 如何从 Loader 向 TextView 添加文本

现在我正在学习Threads,我的任务是制作一个计数器,它将TextViewLoader. 当然,我知道它不是Loader用于此类任务的最佳变体,但我想了解它是如何工作的。

所以,我有以下代码:

当我运行项目时,出现运行时错误:

是的,我明白,这意味着它AsyncTaskLoaderClass应该在另一个文件或静态文件中,但在这种情况下,我将没有机会将文本添加到textview. 那么,我该如何解决这个问题呢?

UPD

我以这种方式更改了单击开始按钮的代码:

现在每次在循环中我都有以下错误:

更新 2

最后通过以下方式解决了问题:

曾是

现在

可能我不明白为什么它有效,但它有效

0 投票
1 回答
353 浏览

android - EventBus - 线程模式未重新定义为@Subscribe 注释属性:无法解析方法线程模式

我正在使用 GreenRobot EventBus ,根据文档,我想定义一些 Threading 属性,

但是,当我写:

我收到一个错误,编译器指定方法无法识别 threadMode: cannot resolve method 'threadMode'

我的gradle档案上有:

0 投票
0 回答
176 浏览

java - 同一类的多个实例从事件总线获取相同的事件

我正在使用 greenroot eventbus 在我的应用程序的两个组件之间以异步方式传递事件有效负载,使用@Subscribe注释来订阅事件。问题是,如果具有@Subscribe注释的类的多个实例注册到事件总线,它们都接收相同的事件有效负载并且计算是多次完成的。(正如我创建的许多实例一样。)

有没有办法让事件总线只向我的类的单个实例提供事件有效负载,即

如果我的订阅方法如下所示:

如果我创建 5 个 A 类实例,并将 5 个字符串传递给事件总线,则所有订阅的实例都应该得到 1 个实例。

由于多个对象,有没有办法可以避免这种冗余计算?

0 投票
2 回答
498 浏览

java - 服务(事件总线订阅者)未收到来自 Activity 的帖子

通知事件类 (POJO)

}

MyFirebaseMessagingService(订阅者)

我的活动(海报)

错误

成功日志

不成功的日志

我试过粘和不粘都无济于事。帮助表示赞赏

更新

我可以确认事件总线工作正常,真正的问题是:该服务仅在收到通知时运行。这是一个问题,因为该服务在每次创建活动时都需要来自主活动的更新字符串,而不是仅在收到通知时。

可能的黑客解决方案

每次启动应用程序时,我都可以向自己发送通知(而不是显示它)。这将启动服务并允许事件总线更新字符串。这并不理想,并且会随着预算的增加而耗尽我的 Firebase 工资。因此,仍然会非常感谢本地解决方案。

0 投票
0 回答
260 浏览

android - EventBusException:它的超类没有带有@Subscribe 注解的公共方法

我正在研究 ROS android 项目。我正在实现 EventBus 以不断更新 textViews 的值。我将值从 ManActivity 发布到 MainFragment

但我越来越低于错误

org.greenrobot.eventbus.EventBusException:订阅者类 com.korechi.roamioapp.MainActivity 及其超类没有带有 @Subscribe 注释的公共方法

我试过这个链接,但没有帮助。而且我没有使用 proGuard,所以我认为我不需要任何规则来修复并且不确定 proGuard 是如何工作的。

谢谢,非常感谢您的帮助。

我在MainActivity上注册事件 ,我的 MainActivity扩展了 AppCompatRosActivity

MainActivity发布值

像这样从MainFragment订阅

摇篮

0 投票
1 回答
384 浏览

android - 使用事件总线控制播放或暂停按钮

如果我们打开我们的应用程序,就会加载新闻片段并且新闻会自动开始播放。我们正在使用 Exoplayer 播放新闻。通知由 Exoplayer 通过 PlayerNotificationManager 创建。问题是播放暂停按钮不跟随通知。我们已经实现了事件总线,它只改变了可绘制对象。因此,如果我们单击通知上的暂停按钮,片段上的按钮被视为已暂停,但当我们单击它时,它会用作暂停按钮(而不是用作播放按钮)。

我们打算做的是:如果通知说暂停,片段上的按钮将被暂停,然后如果我们点击它,内容将开始播放。

代码:

NewsReaderFragment.java

Exophelper.java


PlayerNotificationManager.java


这是一个大文件,所以我们只附加我们使用事件总线的接收器:

按钮事件.java

}

0 投票
0 回答
21 浏览

greenrobot-eventbus - 使用纯 Java 的 greenrobot EventBus 订阅者索引

是否可以配置一个使用 greenrobot 的 EventBu 生成和使用订阅者索引的普通 Java 应用程序?如果是这样,我应该如何配置该eventBusIndex属性?