问题标签 [otto]

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 回答
100 浏览

java - 在 OTTO 中,参数化类的所有实例都“相同”吗?

我以为我对我提出的另一个问题有一个很好的解决方案,但现在我认为它不会奏效。

在奥托,如果我做这样的事情:

ApiRequestEvent<>如果我将任何实例发布到总线上,似乎这两种方法都会被调用。那是什么预期的?

我怀疑发生这种情况是因为在 Java 中实际上只有一个 class ApiRequestEvent,而 Otto 正在查看该类而忽略了类型参数。

在我放弃这种方法之前,是否还有这种方法?我打算使用这个参数化类作为我想要订阅的事件的“签名”。

0 投票
1 回答
1994 浏览

java - Otto 运行时异常

我的应用程序到处使用 Otto,但我一直遇到相同的运行时异常崩溃。这发生在几个不同的事件中,这让我认为我没有正确实施 otto。我正在使用主线程总线技术,如下所示:

这是我的巴士提供商:

这是堆栈跟踪(对于最常见的):

0 投票
1 回答
1364 浏览

java - 推荐将 Handler 与 EventBus/Otto 一起使用?

对于 Otto 和 EventBus 等库,我想知道使用Handler是否仍然有意义:

Handler 允许您发送和处理与线程的 MessageQueue 关联的 Message 和 Runnable 对象。每个 Handler 实例都与单个线程和该线程的消息队列相关联。

除了事件总线库之外,如何使用处理程序?我认为使用普通线程并直接通过事件总线发送消息就足够了,还是我在这里遗漏了什么?

0 投票
1 回答
794 浏览

android - 如何使用 Otto 回调 onAttach 中的 Activity?

我正在开发一个使用NavigationDrawer的应用程序。Different fragments are placed into the content view of the MainActivitywhenever a menu item in the drawer is selected. 要通知已MainActivity成功Fragment附加,将执行以下回调:

由于我开始在项目中使用OttoDagger,我很好奇如何用.post()事件替换回调,例如:

问题mBusnullonAttach(). 它在onCreate().

这是此类 Fragment 类的示例

参考:


您可以自己轻松地试用该示例:从NavigationDrawerAndroid Studio 中可用的模板创建一个新项目,添加DaggerOtto并尝试替换提到的回调。


工作解决方案:

0 投票
1 回答
311 浏览

android - 子片段之间的动态数据交换

有一个 Activity 具有片段及其子片段。需要在两个子片段之间交换动态生成的字符串数组。但是,无论我为此使用了什么技术,它null 每次都会返回。

我也使用了自定义接口实现,尽管它们在我的设计中很痛苦。如果您能为这个问题提出任何解决方案,我将不胜感激。

在此处输入图像描述

Fragment-X 和 Fragment-Y 在 ViewPager 适配器中定义,onPauseFragment()并且onResumeFragment()方法由自定义OnPageChangeListener()接口方法实现。

当 ViewPager 项目位置更改时,Fragment_Y 应该接收捆绑消息

FragmentLifecycle控制片段之间状态变化的接口类

EDIT: ViewPager 适配器

EDIT:片段_B

EDIT:这是 ViewPger Fragments (Fragment_XFragmentY),我尝试选择列表项,收集到 Strin 数组中并与捆绑包一起发布以在Fragment_Y.

在此处输入图像描述

0 投票
0 回答
575 浏览

android - Otto 总线和 ViewPager 多次注册

我有带有菜单抽屉的应用程序。菜单选项之一,将主容器更改为 ViewPager。在 ViewPager 中,我有订阅 Otto 事件总线的片段(在 onResume() 方法中)。第一次点击时,ViewPager 中的 onResume() 方法被调用,然后片段中的 onResume() 方法被调用,因此总线被注册。但是当用户再次单击该选项时,只会调用 ViewPager 的 onPause 方法,因此 Otto(在 onPause() 方法中,在片段中)没有被取消注册。之后我有两辆注册巴士。解决这个问题最好的方法是什么?在 ViewPager 的 onPause() 中手动调用 Fragment 的 onPause() 方法?还是有更好的解决方案?

0 投票
2 回答
1995 浏览

android - 在同一个订阅者上多次调用注册会导致多个事件调用吗?

我需要 OttoonCreate()注册onResume()

  1. 是否会导致同一订阅者多次注册?
  2. 因此,我是否必须调用 unregister 两次?

谢谢

0 投票
1 回答
1008 浏览

android - Square的奥托和线程

我有一个奥托问题。我有一个可运行的线程,我开始了。它进行一些处理并将结果作为事件发布到总线上。

在 Runnable 类中,通过调用此类的 getInstance 来检索总线:

稍后,Activity 使用相同的方法: BusProvider.getInstance() 来访问总线并注册任何事件。但是,永远不会调用 @Subscribe 方法:

我的假设是,即使我强制总线位于特定线程上,即。ThreadEnforcer.MAIN,因为我在 Runnable 上设置了一个新线程,所以我稍后在 Activity 中没有收到任何事件的原因是在一个线程上发布,而在另一个线程上进行监听,因此不起作用?

0 投票
0 回答
449 浏览

android - Square Retrofit + Otto 与 Robolectric 单元测试

我有一个 Square Retrofit + Otto 的设置。

在 API 调用成功或失败时,Otto 会通知订阅对象。

我正在尝试在不模拟请求/响应的情况下编写单元测试。

但我似乎没有得到任何响应,甚至 Robolectric.httpRequestWasMade() 在调用 REST 调用后返回 false

Robolectric 可以进行实际的 API 调用并得到他们的响应吗?任何帮助表示赞赏。

0 投票
2 回答
10022 浏览

java - RuntimeException:无法调度事件@otto

我们当前的应用程序版本中存在来自 otto 的 EventHandler 的问题。我们RuntimeException在崩溃日志中得到一个,描述如下:

“原因:java.lang.RuntimeException:无法调度事件:classcom.nameOfBrand.ui.events.SwitchFragmentEvent 到处理程序 [EventHandler public void com.nameOfBrand.ui.activities.MainActivity.onSwitchFragmentEvent(com.nameOfBrand.ui.events.SwitchFragmentEvent )]"

我们有一个按钮,在它的 onClickListener 中我们触发了一个自定义的SwitchFragmentEvent。在某些奇怪的情况下,框架无法调度事件并抛出一个RuntimeException.

带有按钮的片段 extendsAbstractResultListFragment和这个 extends AbstractFragment。我们在 AbstractFragement 的 onResume 中注册 EventBus,在 onPause 中取消注册。一切正常,除了这个按钮:/

有没有人有这样的想法或曾经做过这样的事情?

更新: Scompt 是对的。RuntimeException 是从我们代码中的 NullPointerException 的奥托原因引发的。谢谢

提示:阅读您的崩溃日志,直到结束;)