问题标签 [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 - Dagger + Otto 架构指导
我正在尝试开发一个具有某种模块化架构的应用程序(没有人知道没有人,但每个人仍然可以交流)。我将从一个例子开始:
里面LoginFragment
:
捕获此事件,然后Authenticator
回发:
Authenticator
通过 Dagger 依赖很多东西:
这是由提供的AuthModule
:
我的Application
班级:
问题是- 我在哪里实例化(@Inject
)Authenticator
?我不直接在我的任何课程中使用它。它可以是AbsApplication
类中的一个字段吗?我什至应该使用匕首Authenticator
吗?我没有Dagger
正确使用 's 模块吗?
我知道我可以@Inject Authenticator
在里面LoginFragment
,但我正在探索新的模式。请忍受我。
android - 用于 android 的 otto 事件总线在发布版本中表现不同
我有一个单例服务类,可以按设定的时间表从服务器中提取数据。客户一收到数据,我就会触发bus.post(new NewServerResponseEvent());
(http://square.github.io/otto/)
然后在我的片段中我这样做:
只要我在测试设备上开发时运行它,一切都会非常顺利。一旦我构建了发布版本并将其放入 Play 商店,handleNewServerData()
就永远不会调用该函数。
我无法理解这一点。将整个事情作为发布版本运行有什么不同?是否可能在另一个线程中发生了无法发布给我的订阅者的事情?
有人可以指出我正确的方向吗?
提前致谢
java - WebViewClient.shouldOverrideUrlLoading 中的 FragmentTransaction 引发 IllegalStateException
我似乎在与比赛条件作斗争,我似乎无法确定其原因。执行下面的代码时,我间歇性地得到下面的堆栈跟踪。
我违反了 Fragment 生命周期的一些明显规则吗?我不清楚什么会明确禁止我在这里执行交易来处理事件。
我正在使用 aWebViewClient
来检测在本地 .html 文档中单击的外部 URL - 如指向非本地主机的 URL。我正在使用 OttoEventBus
将这些操作发布到Activity
. 当Activity
接收到这些事件时,我想Fragment
通过调用以不同的方式显示这些外部 URLFragmentTransaction.replace()
DefaultWebViewClient.java
片段活动.java
LoadExternalUrlEvent.java
事件总线.java
堆栈跟踪
android - 如何使用 otto 和 picasso 进行改造
我想将我的 API 中的数据加载到我的 android 应用程序中的自定义 gridview 中,我的 API 返回一些文本信息和一些图像 URL 作为 JsonArray。我想使用改造和 otto 和 picasso(用于加载图像),我也想要异步获取。
问题是我无法理解如何一起使用这些库(我也无法理解改造的异步实现)。你能给我一些我能理解这个场景的教程或例子吗?
PS:我阅读了这个图书馆的这篇文章和维基,但不能很好地理解。
请给我一些完整的教程或示例。提前致谢。
android - 如何知道 Otto 订阅者已注册
我正在使用Square 的Otto。我的订阅者类在 Activity / FragmentonStart
和onStop
方法中注册。
但是有时,我会收到此错误
原因:java.lang.IllegalArgumentException:缺少带注释的方法的事件处理程序。类 EventListener 是否已注册?在 com.squareup.otto.Bus.unregister(Bus.java:289)
我很确定我的班级已经注册。有没有办法知道这个类是否已注册?
android - 改造、Otto 和在 RAM 中存储模型
在我们的项目中,我们禁止存储来自服务器的数据(机密信息)。但是一旦下载并解析了模型,就会在多个片段中使用。服务器上的数据每天更新一次,并在午夜发生强制注销。我想将parced模型存储在内存中,并在退出应用程序时将其删除。
在当前实现中,我有两个单实例类 - RestClient和DataStorage,它们在构造函数中注册到 Otto 总线。我在 Application 类中实例化它们:
每个模型的 DataStorage 都有方法:
片段将事件抛出总线发送到 RestClient 并从 RestClient 接收结果或从 DataStorage “生成”结果(如果在后台应用程序时接收到数据)。
问题是当用户退出应用程序时,数据并没有被删除,因为应用程序并没有死掉。如何在不杀死进程的情况下在退出时清除数据来实现存储在内存中?
android - 用于与服务器通信的 Android 服务
我需要该服务与服务器建立稳定的连接。
活动和服务应该有双向通信。
这是我知道的选项
- 使用意图服务
- 扩展 Service 类(使其在不同的进程中运行)并使用 Messaging 进行通信
我的想法:
Intent 服务很好,它们在自己的线程中运行,但在任务完成时会停止。我不想要那个。例如,如果由于某种原因连接被中断,它应该尝试重新连接,而不是退出服务
扩展服务类是有道理的。我之前参与过一个使用 Messaging 与服务通信的项目,这里的问题是随着项目的增长,管理通信变得很困难。
我正在寻找一种方法,其中服务在不同的进程或线程中运行,如果因任何原因终止(例如 START_STICKY)应该重新启动。
如果通信容易并且可以使用Otto或EventBus之类的东西,那就太好了。
编辑:所以问题是,实现它的理想方法是什么,这使我免于处理消息并提供 STICKY 服务。
android - 使用库 Otto 时出错
我正在尝试处理 Otto 库并在此处尝试一个示例
我能够运行这个例子。但是我想使用组件,为此我做了一些改动并得到了错误
主要活动:
分段:
我只是改变了:
或者更确切地说,mainTxt.setText(s);
我想对事件进行分段,不仅显示消息并将值设置为mainTxt
错误:
帮助我理解