问题标签 [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 回答
1313 浏览

java - 具有空引用的 Guava/Otto EventBus

假设以下场景具有 A、B 类和事件总线的一个实例(它可以是Guava 事件总线,由 Google提供,也可以是Otto 事件总线,由 Squ.re 提供)

现在,如果我运行它(仅用 Otto 测试)onSomething被调用 2 次。

¿ 事件总线是否会保留对“ a”的引用,直到调用取消注册?

更重要的是

¿ 如果由于某种原因我无法确定 ' a' 为空的时刻,那么事件总线将永远持有对该对象的无用引用(内存泄漏)?

0 投票
1 回答
384 浏览

android-listview - 对多个 ListView 使用单个 Cursor

这是对我更老、更广泛的问题的答案所引发的研究的延续。

使用单个游标(通过 CursorLoader 获得)来提供两个不同的视图是否正确,即:

  1. 通过 SimpleCursorAdapter 的ListView
  2. com.google.android.gms.maps。带标记的谷歌地图?

到目前为止我得到的结果:

  1. 如果两个视图同步地给出光标(即:不涉及其他线程),那么视觉上一切正常,除了填充 GoogleMap 时 UI 被严重阻塞
  2. 如果 GoogleMap 是从AsyncTask中的 Cursor 填充的,则 UI 会变得响应,但ListView存在异常:一些行重复,还有一些标记没有到达地图。

我的设置的详细信息

  1. 在onResume()期间在FragmentActivity中加载 SQLite 游标
  2. 上述活动承载ViewPager有两个片段:ListFragmentSupportMapFragment(使用 ViewPager 的结果是两个片段将始终处于活动状态)
  3. 来自活动的游标通过Otto总线传递到片段(对于不熟悉的:这只是回调接口的精简替代,它在主线程上同步传递结果)
0 投票
1 回答
419 浏览

android - 使用 otto 进行片段间通信 - 依赖注入令人困惑

我希望使用 Otto 进行片段间通信。如果我能提供帮助,我想使用最佳实践来做到这一点。Github 上的 Otto 示例对Bus对象使用单例,但建议使用依赖注入。我对这两个概念都很陌生,尽管前者似乎更容易实现。尽管四处阅读,我仍在努力寻找如何在不费力的情况下完成后者。

有操作系统依赖注入器 dagger、guice 和其他一些,但对于像我这样的相对新手来说,它们似乎相当沉重。我想知道是否真的值得学习使用其中之一来获得看似微小的效率/代码常规收益。更不用说他们会让我的项目膨胀。

使用 DI 来实现 Otto 真的值得吗,而我只打算在这里和那里用它来替换一些接口和侦听器?我只会Bus在一些包含片段的活动中注册

我不会进行单元测试,我可以忍受两个或三个活动(十个)与它们的片段紧密耦合。我看不出这样做有什么不好的,因为这是不明智的,特别是如果稍后切换到依赖注入相对容易的话。

最后,我是否需要Bus单独的活动片段组的单独实例,其中通信只会在所述组内发生?从阅读中我不清楚我是否需​​要这样做以获得最佳实践/效率或安全性?

0 投票
1 回答
1260 浏览

android - 可以双向使用 Otto 事件总线吗?

双向使用 Otto 事件总线是一种好习惯吗?

我的意思是,将事件从控制器发送到视图,然后将视图发送到控制器?

或者它只是为了发布结果意味着它的目的只是从控制器到视图的事件?

谢谢

0 投票
1 回答
9404 浏览

android - 片段实例中带有 Otto 事件总线的 IllegalArgumentException

我正在使用 Otto 事件总线订阅 ListFragment 中的某些事件。总线实例存储和创建在 Application 的子类中,换句话说,它总线应该作为单例工作。好像不是这样的……

该片段在 中注册到总线onActivityCreated(Bundle)并在中取消注册onDestroy()。这不能正常工作。我从应用程序在调用时崩溃的设备收到了几份崩溃报告unregister()(java.lang.IllegalArgumentException:缺少带注释的方法的事件处理程序......)。unregister()仅当在任何 register() 调用之前被调用或被unregister()调用两次时才会抛出此异常。这可能只发生在...

  • onActivityCreated(Bundle)之前没有调用onDestroy()
  • onDestroy()被调用两次。
  • 在调用和Application之间重新创建实例。onActivityCreated(Bundle)onDestroy()

我的应用程序类:

片段类:

更新:

我遗漏了一个重要的细节;片段用于 a ViewPager。当用户在ViewPager. 这个小细节似乎改变了某些设备上的片段生命周期:在创建 onActivityCreated()之后启动的片段永远不会被调用。ViewPager

0 投票
1 回答
146 浏览

events - Otto 中的事件是什么?是否有可以使用 OTTO 发布的事件类型?

我只是对可以通过 OTTO 发布哪些类型的事件感到有点困惑。并且事件类的示例将非常有帮助。谢谢

0 投票
1 回答
2072 浏览

android - 使用 Robolectric 测试 Android Activity,重复的 Otto 提供程序

我在弄清楚如何使用 Robolectric 2.2 测试我的活动时遇到了一点问题。我可能没有正确设置生命周期或整个测试......

在我的活动中,我有一个这样的 Otto 制作人:

以下是我的测试。

每次我启动它时,我都会收到:

有人有同样的问题吗?我该如何解决?

0 投票
3 回答
1560 浏览

android - 从广播事件切换到奥托有什么好处吗

我偶然发现了Otto,它看起来被用作广播事件的替代品。我阅读了文档,但是我不明白使用 Otto 是否有很多优点。

0 投票
2 回答
3284 浏览

android - Otto中sync post的表现(Event bus)

我在我的应用程序中使用 Otto 作为事件总线。我浏览了 square.github.io/otto。它说“发布到总线是一个同步操作,因此当程序继续执行时,可以保证所有订阅者都已被调用。” 我很好奇为什么它不提供异步发布。如果我们只有同步发布,性能是否会成为问题?这是否意味着总线事件的接收者应该通过使用其他异步任务或线程来考虑性能问题以防止阻塞一切?

谢谢。

0 投票
2 回答
3579 浏览

android - Gradle 找不到库

我正在尝试在我的项目中包含 Otto 库,但出现此错误:

我试过清理项目,运行工具-> android->使用 gradle 文件同步项目,但这给了我同样的错误。

我的 build.gradle 如下: