问题标签 [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.
java - 在 OTTO 中,参数化类的所有实例都“相同”吗?
我以为我对我提出的另一个问题有一个很好的解决方案,但现在我认为它不会奏效。
在奥托,如果我做这样的事情:
ApiRequestEvent<>
如果我将任何实例发布到总线上,似乎这两种方法都会被调用。那是什么预期的?
我怀疑发生这种情况是因为在 Java 中实际上只有一个 class ApiRequestEvent
,而 Otto 正在查看该类而忽略了类型参数。
在我放弃这种方法之前,是否还有这种方法?我打算使用这个参数化类作为我想要订阅的事件的“签名”。
java - Otto 运行时异常
我的应用程序到处使用 Otto,但我一直遇到相同的运行时异常崩溃。这发生在几个不同的事件中,这让我认为我没有正确实施 otto。我正在使用主线程总线技术,如下所示:
这是我的巴士提供商:
这是堆栈跟踪(对于最常见的):
java - 推荐将 Handler 与 EventBus/Otto 一起使用?
对于 Otto 和 EventBus 等库,我想知道使用Handler是否仍然有意义:
Handler 允许您发送和处理与线程的 MessageQueue 关联的 Message 和 Runnable 对象。每个 Handler 实例都与单个线程和该线程的消息队列相关联。
除了事件总线库之外,如何使用处理程序?我认为使用普通线程并直接通过事件总线发送消息就足够了,还是我在这里遗漏了什么?
android - 如何使用 Otto 回调 onAttach 中的 Activity?
我正在开发一个使用NavigationDrawer的应用程序。Different fragments are placed into the content view of the MainActivity
whenever a menu item in the drawer is selected. 要通知已MainActivity
成功Fragment
附加,将执行以下回调:
由于我开始在项目中使用Otto和Dagger,我很好奇如何用.post()
事件替换回调,例如:
问题mBus
是null
在onAttach()
. 它在onCreate()
.
参考:
您可以自己轻松地试用该示例:从NavigationDrawer
Android Studio 中可用的模板创建一个新项目,添加Dagger和Otto并尝试替换提到的回调。
工作解决方案:
- 这是最终工作版本中的示例片段。
android - 子片段之间的动态数据交换
有一个 Activity 具有片段及其子片段。需要在两个子片段之间交换动态生成的字符串数组。但是,无论我为此使用了什么技术,它null
每次都会返回。
我也使用了自定义接口实现,尽管它们在我的设计中很痛苦。如果您能为这个问题提出任何解决方案,我将不胜感激。
Fragment-X 和 Fragment-Y 在 ViewPager 适配器中定义,onPauseFragment()
并且onResumeFragment()
方法由自定义OnPageChangeListener()
接口方法实现。
当 ViewPager 项目位置更改时,Fragment_Y 应该接收捆绑消息
FragmentLifecycle
控制片段之间状态变化的接口类
EDIT
: ViewPager 适配器
EDIT:
片段_B
EDIT:
这是 ViewPger Fragments (Fragment_X
和FragmentY
),我尝试选择列表项,收集到 Strin 数组中并与捆绑包一起发布以在Fragment_Y
.
android - Otto 总线和 ViewPager 多次注册
我有带有菜单抽屉的应用程序。菜单选项之一,将主容器更改为 ViewPager。在 ViewPager 中,我有订阅 Otto 事件总线的片段(在 onResume() 方法中)。第一次点击时,ViewPager 中的 onResume() 方法被调用,然后片段中的 onResume() 方法被调用,因此总线被注册。但是当用户再次单击该选项时,只会调用 ViewPager 的 onPause 方法,因此 Otto(在 onPause() 方法中,在片段中)没有被取消注册。之后我有两辆注册巴士。解决这个问题最好的方法是什么?在 ViewPager 的 onPause() 中手动调用 Fragment 的 onPause() 方法?还是有更好的解决方案?
android - 在同一个订阅者上多次调用注册会导致多个事件调用吗?
我需要 OttoonCreate()
注册onResume()
- 是否会导致同一订阅者多次注册?
- 因此,我是否必须调用 unregister 两次?
谢谢
android - Square的奥托和线程
我有一个奥托问题。我有一个可运行的线程,我开始了。它进行一些处理并将结果作为事件发布到总线上。
在 Runnable 类中,通过调用此类的 getInstance 来检索总线:
稍后,Activity 使用相同的方法: BusProvider.getInstance() 来访问总线并注册任何事件。但是,永远不会调用 @Subscribe 方法:
我的假设是,即使我强制总线位于特定线程上,即。ThreadEnforcer.MAIN,因为我在 Runnable 上设置了一个新线程,所以我稍后在 Activity 中没有收到任何事件的原因是在一个线程上发布,而在另一个线程上进行监听,因此不起作用?
android - Square Retrofit + Otto 与 Robolectric 单元测试
我有一个 Square Retrofit + Otto 的设置。
在 API 调用成功或失败时,Otto 会通知订阅对象。
我正在尝试在不模拟请求/响应的情况下编写单元测试。
但我似乎没有得到任何响应,甚至 Robolectric.httpRequestWasMade() 在调用 REST 调用后返回 false
Robolectric 可以进行实际的 API 调用并得到他们的响应吗?任何帮助表示赞赏。
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 的奥托原因引发的。谢谢
提示:阅读您的崩溃日志,直到结束;)