问题标签 [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.
java - 最近一直在看很多第三方库代码,看到这段代码让我很困惑
所以这是来自 EventBus getDefault() 静态方法的一段代码,它返回 EventBus 类的静态实例。
我看到代码首先检查实例是否为空,然后在同步块中再次进行相同的检查。这是为什么。
如果我这样写怎么办。
我的版本有问题吗?我在这里缺少什么?
java - 如何在 Android 中第一次使用 EventBus
在我的应用程序中,我有 2 activity
。Activity
甲和Activity
乙。
对于 show Activity
B用户应该从Activity
A去。
在activity
B中,我有一个button
,当单击此button
finish
Activity B并将一种方法调用到Activity A时,我想要。
对于这项工作,我写了下面的代码:
对于调用Activity
A 的方法,我编写以下代码:
点击时Button
,调用上面的方法!
但是当点击时Button
,总是调用Activity A方法!
我的意思是:点击后button
,甚至转到Activity
C、E等等……当点击返回button
转到Activity
A时,再次调用 A 的上述Activity
方法。
我只想在button
从Activity
B中单击时调用上述方法,但并非总是如此!
我该如何解决?
android - AppCompatActivity 如何使用 EventBus 与 FragmentActivity 进行通信?
问题,AppCompatActivity 如何使用 EventBus 与 FragmentActivity 进行通信?
结果发现,FragmentActivity 可以和 AppCompatActivity 通信,调用了 onEvent 方法,但是如果我们把通信路径切换到 AppCompatActivity 和 FragmentActivity 通信,永远不会调用 onEvent 方法。
java - 如何从 Loader 向 TextView 添加文本
现在我正在学习Threads
,我的任务是制作一个计数器,它将TextView
在Loader
. 当然,我知道它不是Loader
用于此类任务的最佳变体,但我想了解它是如何工作的。
所以,我有以下代码:
当我运行项目时,出现运行时错误:
是的,我明白,这意味着它AsyncTaskLoaderClass
应该在另一个文件或静态文件中,但在这种情况下,我将没有机会将文本添加到textview
. 那么,我该如何解决这个问题呢?
UPD
我以这种方式更改了单击开始按钮的代码:
现在每次在循环中我都有以下错误:
更新 2
最后通过以下方式解决了问题:
曾是
现在
可能我不明白为什么它有效,但它有效
android - EventBus - 线程模式未重新定义为@Subscribe 注释属性:无法解析方法线程模式
我正在使用 GreenRobot EventBus ,根据文档,我想定义一些 Threading 属性,
但是,当我写:
我收到一个错误,编译器指定方法无法识别 threadMode: cannot resolve method 'threadMode'
我的gradle
档案上有:
java - 同一类的多个实例从事件总线获取相同的事件
我正在使用 greenroot eventbus 在我的应用程序的两个组件之间以异步方式传递事件有效负载,使用@Subscribe注释来订阅事件。问题是,如果具有@Subscribe注释的类的多个实例注册到事件总线,它们都接收相同的事件有效负载并且计算是多次完成的。(正如我创建的许多实例一样。)
有没有办法让事件总线只向我的类的单个实例提供事件有效负载,即
如果我的订阅方法如下所示:
如果我创建 5 个 A 类实例,并将 5 个字符串传递给事件总线,则所有订阅的实例都应该得到 1 个实例。
由于多个对象,有没有办法可以避免这种冗余计算?
java - 服务(事件总线订阅者)未收到来自 Activity 的帖子
通知事件类 (POJO)
}
MyFirebaseMessagingService(订阅者)
我的活动(海报)
错误
成功日志
不成功的日志
我试过粘和不粘都无济于事。帮助表示赞赏
更新
我可以确认事件总线工作正常,真正的问题是:该服务仅在收到通知时运行。这是一个问题,因为该服务在每次创建活动时都需要来自主活动的更新字符串,而不是仅在收到通知时。
可能的黑客解决方案
每次启动应用程序时,我都可以向自己发送通知(而不是显示它)。这将启动服务并允许事件总线更新字符串。这并不理想,并且会随着预算的增加而耗尽我的 Firebase 工资。因此,仍然会非常感谢本地解决方案。
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订阅
摇篮
android - 使用事件总线控制播放或暂停按钮
如果我们打开我们的应用程序,就会加载新闻片段并且新闻会自动开始播放。我们正在使用 Exoplayer 播放新闻。通知由 Exoplayer 通过 PlayerNotificationManager 创建。问题是播放暂停按钮不跟随通知。我们已经实现了事件总线,它只改变了可绘制对象。因此,如果我们单击通知上的暂停按钮,片段上的按钮被视为已暂停,但当我们单击它时,它会用作暂停按钮(而不是用作播放按钮)。
我们打算做的是:如果通知说暂停,片段上的按钮将被暂停,然后如果我们点击它,内容将开始播放。
代码:
NewsReaderFragment.java
Exophelper.java
PlayerNotificationManager.java
这是一个大文件,所以我们只附加我们使用事件总线的接收器:
按钮事件.java
}
greenrobot-eventbus - 使用纯 Java 的 greenrobot EventBus 订阅者索引
是否可以配置一个使用 greenrobot 的 EventBu 生成和使用订阅者索引的普通 Java 应用程序?如果是这样,我应该如何配置该eventBusIndex
属性?