问题标签 [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 投票
0 回答
889 浏览

android - Dagger + Otto 架构指导

我正在尝试开发一个具有某种模块化架构的应用程序(没有人知道没有人,但每个人仍然可以交流)。我将从一个例子开始:

里面LoginFragment

捕获此事件,然后Authenticator回发:

Authenticator通过 Dagger 依赖很多东西:

这是由提供的AuthModule

我的Application班级:


问题是- 我在哪里实例化(@InjectAuthenticator?我不直接在我的任何课程中使用它。它可以是AbsApplication类中的一个字段吗?我什至应该使用匕首Authenticator吗?我没有Dagger正确使用 's 模块吗?


我知道我可以@Inject Authenticator在里面LoginFragment,但我正在探索新的模式。请忍受我。

0 投票
1 回答
672 浏览

android - 用于 android 的 otto 事件总线在发布版本中表现不同

我有一个单例服务类,可以按设定的时间表从服务器中提取数据。客户一收到数据,我就会触发bus.post(new NewServerResponseEvent());http://square.github.io/otto/

然后在我的片段中我这样做:

只要我在测试设备上开发时运行它,一切都会非常顺利。一旦我构建了发布版本并将其放入 Play 商店,handleNewServerData()就永远不会调用该函数。

我无法理解这一点。将整个事情作为发布版本运行有什么不同?是否可能在另一个线程中发生了无法发布给我的订阅者的事情?

有人可以指出我正确的方向吗?

提前致谢

0 投票
1 回答
730 浏览

java - WebViewClient.shouldOverrideUrlLoading 中的 FragmentTransaction 引发 IllegalStateException

我似乎在与比赛条件作斗争,我似乎无法确定其原因。执行下面的代码时,我间歇性地得到下面的堆栈跟踪。

我违反了 Fragment 生命周期的一些明显规则吗?我不清楚什么会明确禁止我在这里执行交易来处理事件。

我正在使用 aWebViewClient来检测在本地 .html 文档中单击的外部 URL - 如指向非本地主机的 URL。我正在使用 OttoEventBus将这些操作发布到Activity. 当Activity接收到这些事件时,我想Fragment通过调用以不同的方式显示这些外部 URLFragmentTransaction.replace()


DefaultWebViewClient.java


片段活动.java


LoadExternalUrlEvent.java


事件总线.java


堆栈跟踪

0 投票
1 回答
781 浏览

android - 如何避免 Interface-Hell 和 Eventbus-Confusion?

我为 android 开发了一些应用程序,并且总是指出我需要在其中进行交流

  • 片段到活动
  • 活动碎片化
  • 片段到片段
  • 分片服务
  • 等等

例如,在 Android文档中,他们建议使用接口在 Activity 和 Fragment 之间进行通信。但是我有例如 4 个片段,那么我的 Activity 需要实现 4 个接口。我的意图对吗?

所以我尝试了Otto,值得一试。但是我认识到,如果您不跟踪公交车事件,您可能会感到非常困惑。

我正在寻找一种避免这些方法的策略。谷歌或其他主要开发商如何?

0 投票
1 回答
1775 浏览

android - 如何使用 otto 和 picasso 进行改造

我想将我的 API 中的数据加载到我的 android 应用程序中的自定义 gridview 中,我的 API 返回一些文本信息和一些图像 URL 作为 JsonArray。我想使用改造和 otto 和 picasso(用于加载图像),我也想要异步获取。

问题是我无法理解如何一起使用这些库(我也无法理解改造的异步实现)。你能给我一些我能理解这个场景的教程或例子吗?

PS:我阅读了这个图书馆的这篇文章和维基,但不能很好地理解。

请给我一些完整的教程或示例。提前致谢。

0 投票
3 回答
1266 浏览

android - Otto 事件收到两次

我尝试使用Otto。我认为它到目前为止有效,但我收到了两次事件。

这就是我所拥有的(我按照GitHub 上的示例进行操作):

制作人:

订阅者:

日志锁是这样的:

为什么我会收到两次事件?

0 投票
3 回答
5826 浏览

android - 如何知道 Otto 订阅者已注册

我正在使用Square 的Otto。我的订阅者类在 Activity / FragmentonStartonStop方法中注册。

但是有时,我会收到此错误

原因:java.lang.IllegalArgumentException:缺少带注释的方法的事件处理程序。类 EventListener 是否已注册?在 com.squareup.otto.Bus.unregister(Bus.java:289)

我很确定我的班级已经注册。有没有办法知道这个类是否已注册?

0 投票
0 回答
164 浏览

android - 改造、Otto 和在 RAM 中存储模型

在我们的项目中,我们禁止存储来自服务器的数据(机密信息)。但是一旦下载并解析了模型,就会在多个片段中使用。服务器上的数据每天更新一次,并在午夜发生强制注销。我想将parced模型存储在内存中,并在退出应用程序时将其删除。

在当前实现中,我有两个单实例类 - RestClientDataStorage,它们在构造函数中注册到 Otto 总线。我在 Application 类中实例化它们:

每个模型的 DataStorage 都有方法:

片段将事件抛出总线发送到 RestClient 并从 RestClient 接收结果或从 DataStorage “生成”结果(如果在后台应用程序时接收到数据)。

问题是当用户退出应用程序时,数据并没有被删除,因为应用程序并没有死掉。如何在不杀死进程的情况下在退出时清除数据来实现存储在内存中?

0 投票
1 回答
178 浏览

android - 用于与服务器通信的 Android 服务

我需要该服务与服务器建立稳定的连接。
活动和服务应该有双向通信。

这是我知道的选项

  • 使用意图服务
  • 扩展 Service 类(使其在不同的进程中运行)并使用 Messaging 进行通信

我的想法:

  • Intent 服务很好,它们在自己的线程中运行,但在任务完成时会停止。我不想要那个。例如,如果由于某种原因连接被中断,它应该尝试重新连接,而不是退出服务

  • 扩展服务类是有道理的。我之前参与过一个使用 Messaging 与服务通信的项目,这里的问题是随着项目的增长,管理通信变得很困难。

我正在寻找一种方法,其中服务在不同的进程或线程中运行,如果因任何原因终止(例如 START_STICKY)应该重新启动。

如果通信容易并且可以使用OttoEventBus之类的东西,那就太好了。

编辑:所以问题是,实现它的理想方法是什么,这使我免于处理消息并提供 STICKY 服务。

0 投票
1 回答
1467 浏览

android - 使用库 Otto 时出错

我正在尝试处理 Otto 库并在此处尝试一个示例

我能够运行这个例子。但是我想使用组件,为此我做了一些改动并得到了错误

主要活动:

分段:

我只是改变了:

或者更确切地说,mainTxt.setText(s);我想对事件进行分段,不仅显示消息并将值设置为mainTxt

错误:

帮助我理解