问题标签 [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.
android - Otto - 在活动生命周期之间发布消息
我正在研究一种处理活动生命周期并保留用户应用程序状态/进度的方法,然后我找到了 otto/eventbus 解决方案。
但是经过一些研究,我无法弄清楚如何处理特定案例。那么,如果我的工作线程(异步)在我的活动/片段的 onpause/oncreate 之间完成,它不会传递数据会发生什么?我正在尝试寻找答案或创建一个项目来对此进行测试,但仅凭我的测试我无法确定。
我是否遗漏了什么或总线不会提供数据?如果它不会提供结果如何处理?
对不起我糟糕的英语。
java - 如果我还想传递数据,使用 Otto(或简单的回调设计模式)的最佳方式是什么?
我担心的是,这不是为每个被认为是不好的做法的独特事件创建一个自己的课程吗?感觉这种方法并不复杂,如果我有几十个事件更是如此。尽管它是一个简单的解决方案(每种事件类型的唯一字段),但带有许多几乎空的类。
我宁愿有一个通用类和一个 @Subscribe-d 方法,我可以在其中检查发送的消息类型(使用枚举)然后采取相应措施,但这种方法需要我创建例如地图并将数据放入其中它然后每次我想发布一些东西时通过这张地图,这似乎也不是最好的方式。
你怎么看?
java - 从 Dagger 图中获取使用 Qualifier 注释的对象
除非图中的单例对象使用 Qualifier 进行注释,否则我们可以调用:
如果此对象在模块定义中使用 Qualifier 进行注释,那么它将抛出 IllegalStateException。
有没有比从图中检索该对象更好的方法:
和
我有一组图表(每个帐户一个图表)。每个帐户图的单独总线和一个应用程序范围的总线(用不同的限定符注释)。一旦我收到 GCM 同步请求消息,我需要从正确的图表中检索总线以传递同步请求。
android - 让片段可以访问数据
我有一个应用程序,它正在检索主要活动中的数据,并在它可用时立即向所有片段发送事件。所以第一次开始它看起来像这样:
应用程序启动(片段在后台初始化)-> 提要下载-> 发送到片段的通知-> 片段初始化 UI
到目前为止一切都很好。但是,如果我要恢复应用程序怎么办。数据仍将被缓存,因此我将在应用程序恢复时立即发送事件,因此可能会发生我的片段甚至还没有准备好接收事件 -> 没有片段 UI 更新!或者在片段中触发和接收事件,但片段还没有准备好进行 UI 更新,因为它还没有膨胀布局 -> NullpointerException 或者片段接收到事件,但不再附加到活动 - > 另一个例外。有很多方法可以处理单个问题,但总体而言,它使架构复杂化了很多。
不知何故,我尝试了很多东西(玩弄 Otto 总线),但不知何故,我找不到任何架构可以使中央数据源可用于应用程序中的所有活动和片段。
如果您不想使用捆绑包,如何为您的片段提供数据?
android - 无法使用 Otto 生成和订阅事件?
我正在尝试从同一个片段订阅和发布,但是当我尝试注册片段时出现此错误:
上
所以我想这是不可能的,但也许有一个没有额外接口的替代方案。
提前致谢!
android - 使用 Otto 获得对特定事件的响应
我有一个两阶段的过程,我上传图像,获取图像 ID,然后将该 ID 附加到帖子并在服务器上创建帖子。我正在使用 Otto、Tape 和 Retrofit 来处理这个螺栓的螺母,其中大部分已经很顺利了。尽管我尝试一次创建两个帖子,但我可以预见将来会出现问题,因为我将同时在两个响应侦听器中获取图像上传事件。
有没有人有一个解决方案来区分哪些侦听器正在列出哪些事件,尤其是当它们是相同类型的事件时?
我是否应该只生成一个随机 UUID 并将其与我的事件一起传递,然后使用它来识别对特定请求的响应?
android - 通过 otto 事件将更新的列表元素传送到 Mortar 的屏幕
我正在尝试将Mortar用于一个简单的应用程序,该应用程序显示了基于迫击炮样本的项目列表。
我正在使用Retrofit/Gson来获取这些项目的元数据,并在项目下载后使用 Otto 向视图提供更新。我也在使用 Dagger 来创建对象。
我有一个ItemList
实现ListView
显示列表中项目的类,以及一个ItemListScreen
实现mortar.Blueprint
.
我想知道将更新适配器项目的订阅方法放在哪里的最佳位置?目前,我将它放在下面,ItemListScreen.Presenter
但从未调用过 subscribe 方法!
android - 如何在 Android 注释中使用 Otto 事件总线
我正在开发一个应用程序,我想在其中使用Square 的Android Annotations和Otto Bus Event
为了将这两个库集成在一起,我在这里点击了这个链接。我也使用了Otto 2.0-wip
那里建议的库,而不是来自Otto Git
.
这就是我执行的方式:
我为公共汽车创建了一个单例类:
my Fragment Class
我在我想要subscribe
的事件中为这个类声明了一个对象:
我从服务器通信my communicator class
获取事件时将事件发布到总线。callback
这就是我post event
在这堂课中乘坐巴士的方式:
这是我的ChangeUserDetailsEvent
课:
问题:
我的问题是我在总线事件中订阅的方法onChangeUserDetailsEvent
没有被调用,我什至不知道如何调试来解决这个问题。
我应该提一下,当我在Fragment
不使用注释的情况下和不使用注释的Bus
单例中实现总线事件时,它可以完美地工作。这是我不使用注释时的 Bus 单例类:
谢谢!
编辑
当我更新以androidannotations:3.2
更改我gradle file
的来自时,我也遇到了问题:
compile 'org.androidannotations:androidannotations:3.1'
apt 'org.androidannotations:androidannotations:3.1'
至:
compile 'org.androidannotations:androidannotations:3.2'
apt 'org.androidannotations:androidannotations:3.2'
.
对于 3.1 版,它可以编译但不起作用otto event bus
。在 3.2 版中,它给出了错误。这意味着 AA 库已经进行了一些我需要实现的更改,或者它有错误。我怎样才能找到解决方案?
这是错误之一(用于演示): 错误:(27, 25) 错误:找不到符号类 UserAccountActivity_ 这是一个活动类。
这是我的 androidannotations.log:
java - 使用 Otto 进行线程间的通信:它会导致任何问题吗?
我已经Otto
在我最新的 Android 项目中进行了尝试,它确实大大简化了对象之间的通信。但是,我不确定线程之间的通信是否存在任何隐藏问题。
这就是我所做的,SingletonBus
使用 an创建了一个enum
,以便总线可以在任何地方访问:
然后我创建了一个Event
可以包含操作结果的内容(我还没有继承任何东西,而是为每个操作创建一个事件,但是如果有必要,我会尝试重构它,因为它会变得混乱):
然后我创建并发布了这个事件:
并订阅了一个事件以在创建密钥对时获取结果:
我的问题是,它似乎正在工作,但是使用 Otto 与ThreadEnforcer.ANY
线程之间进行通信是否存在任何隐藏错误?这种方法有什么问题吗?