问题标签 [greenrobot-eventbus]
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.
android - 订阅者类没有在事件上调用的公共方法
使用绿色机器人事件总线时出现错误
细节:
我正在加载包含一个包含 10 个子片段的片段的 Activity,而不是调用 我在该片段的父活动中调用EventBus.getDefault().register(this);
的每个嵌套(子)片段。register
java - 如何使用 EventBus onEvent 方法?
我在我的 Android 应用程序中使用 EventBus。在我的 mainActivity 中,我有这个处理程序方法,它将实时数据发送到 EventBus,如下所示:
我正在使用 Fragments 类,我需要从处理程序接收消息。
我已经在 onCreateView 方法中注册了 Fragment 类,如下所示:
而且我有 onEvent 方法,该方法应该在有事件时调用。不幸的是,这个方法永远不会被调用。我认为这可能是被覆盖的方法,但似乎不是。
我需要做什么才能从 EventBus 中读取消息?
另外,在调试模式下,我在哪里可以看到正在创建的线程数?(我正在使用 Android Studio)
android - 服务——分片通信
AnActivity
包含 a Fragment
,后者又包含一个 child Fragment
,它请求 a Service
。该应用程序尝试实现dobjanschi休息架构。
完成Service
工作后,它必须传播操作结果。我尝试使用 a PendingIntent
但它似乎只被活动捕获,而我需要子片段来获得通知。你有什么建议吗?粘合剂?greenRobot 事件总线?RxJava(我在项目中已经有了)?
谢谢。
android - 无法在 onPostResume() 中创建 DialogFragment - java.lang.IllegalStateException:在 onSaveInstanceState 之后无法执行此操作
我有一个 DialogFragment 我尝试在我的 Activity 的覆盖 onPostResume() 方法中创建,但我收到此错误消息:java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
我已经阅读了类似问题的所有答案(此处、此处、此处和此处的博客),但没有一个对我有用(onPostResume 修复或 Runnable 修复),或者不适合 - 我不想使用 commitAllowingStateLoss 因为它不安全,而且我不想在不调用 super() 的情况下覆盖 onSaveInstanceState。
编辑:我已将问题缩小到我对 Eventbus 的使用。当我直接在 onPostResume 方法中创建对话框片段时,我没有收到任何错误。当我调用 eventbus 事件来创建对话框片段时,我得到了上述错误。我尝试将事件处理程序的线程更改为:
但这似乎没有什么不同。
编码:
追溯:
Android 4.0 和 4.4 都会出现此问题。
android - 片段中的 GreenRobot EventBus 错误:没有为事件类注册的订阅者
我有一个活动,它的布局包含一个 FrameLayout。我使用框架布局作为片段容器。我使用 FragmentManager 事务替换 FrameLayout 中的片段。
在片段的 onCreate 方法之一中,我使用 EventBus 注册片段。
该片段的布局中有一个 GridView。每当单击 gridView 中的项目时,我都会将事件发布到 EventBus
此事件的事件处理程序方法在同一个片段中,即片段具有以下方法
这工作正常,直到应用程序失去焦点并变为非活动状态(由于按下主页按钮或屏幕锁定)。当我再次激活应用程序时,不会调用事件的事件处理程序。我可以在 LogCat 中看到以下语句
有人可以告诉我我在这里做错了什么吗?
编辑1:
当应用程序由于屏幕锁定或按下主页按钮而变为非活动状态时,将调用片段的 onStop 方法。从 EventBus 中注销片段的代码在 onStop 方法中。当应用程序再次激活时,将调用片段的 onStart 和 onResume 方法。所以我移动了我的代码,在其 onStart 方法中使用 EventBus 注册片段。
我放了一些日志语句来检查应用程序激活时是否实际调用了 onStart 方法。它正在被调用。当应用程序变为非活动状态然后再次活动时,仍然无法正常工作。
编辑 2 我忘了提到包含这个片段的活动也订阅了 EventBus。向 EventBus 注册活动的代码在其 onCreate 方法中,取消注册活动的代码在其 onStop 方法中。
java - 使用 Eventbus 重用事件对象
在我的应用程序中,我想使用事件总线每 10 毫秒触发一次事件。我正在使用GreenRobot Eventbus,我的代码如下所示:
这很好用,但我有点怀疑这是否有效,因为在这段代码中,每 ~10 毫秒DataEvent
就会创建一个新对象。这真的是正确的方法吗?或者我应该DataEvent
在外部的一个地方创建对象while loop
并在应该触发新事件时重用它?
java - Greenrobot EventBus 无法调度事件
我正在使用 EventBus 从长时间运行的线程与更新其 UI 的片段进行通信。这个长时间运行的线程基本上是在监听网络活动,解析它并将事件放在总线上。我设置了 2 个片段来接收事件。
从 Fragments 的 onEvent 方法更新 Fragments 的 UI(文本视图)时出现错误。如何从单独的线程更新片段中的 UI?
这是我看到的片段和 logcat 输出的代码......
日志猫:
这是其中一个片段(它们看起来相同):
onEvent 方法是我在这里寻找的地方。如果您在日志中注意到,该方法确实会被调用。但是,我无法点击其中的 textView。最初我只是持有对我在 onCreate() 方法中获取的 textview 的引用。但是我看到了你在事件处理中再次查找它的例子,所以我搬到了那个地方,没有运气。
如果我拿出:
然后一切正常。
我在这里想念什么?
android - 订阅者类 ...TaskAdapter 没有称为 onEvent 的公共方法
我在使用 EventBus 时遇到了一些问题。特别是当我尝试运行应用程序时,它给了我错误
但是,它确实具有如下所列的公共方法。有谁知道为什么 Eventbus 会抛出这个异常?
谢谢!
我还尝试将 OnEventMainThread 方法更改为简单的 OnEvent。Etiher方式我得到同样的例外。如果有人好奇,请在下面发布完整的 LogCat。
编辑***********************************
迈克尔在下面发布了解决方案。onEvent 必须是 onEvent 而不是 OnEvent。
android - ListFragment 和 asynctask 问题 android
我试图在我的活动中间显示一个列表片段。列表片段适配器是具有典型 ViewHolder 模式的自定义适配器(从 BaseAdapter 扩展)。它被正确实施。
我使用 greenrobot Eventbus 设置了适配器,以从在后台执行查询的 asynctask 接收新的 List 对象(以免减慢 UI 主线程的速度)。
问题是列表片段最初没有数据库查询的结果,因此它默认为空(并在我的 xml 中显示 id 为“空”的主要活动的文本视图)。
最后,我的适配器和 listviewfragment 根本没有被实例化,因为它默认为空。
有没有更好的方法来做到这一点?如何让我的列表视图片段等待从 asyncTask 收到的数据?
我将只做一个带有列表视图的片段,而不是列表视图片段,我会看看这是否有帮助。