我需要 OttoonCreate()注册onResume()
- 是否会导致同一订阅者多次注册?
- 因此,我是否必须调用 unregister 两次?
谢谢
是否会导致同一订阅者多次注册?
不是。注册将失败,因为同一订阅者不得注册超过一次。
因此,我是否必须调用 unregister 两次?
此处应用相同的规则。注销只能发生一次。第二次调用register()或unregister()将抛出 IllegalArgumentException。此行为可帮助您更早地发现代码中的问题。
我需要 Otto 在 onCreate() 和 onResume() 上注册
您应该重新考虑您决定注册两次或选择另一个库(例如TinyBus),因为 Otto 不允许您这样做。最佳做法是onStart()在onStop().
我正计划创建一个将注册到 otto 总线的服务,所以我想知道是否应该在 onCreate() 或 onStartCommand() 中注册,这可能会被多次调用。如果我把它放在 onStartCommand() 方法中,它会注册多次。
环顾四周,我发现了您的问题以及 Jake Wharton OTTO 的创建者/所有者在 google+ 上的这篇文章。从这听起来像是在一个对象上多次调用 register 被认为是一个应用程序错误。
这是我在 google + 上找到的评论
如果您在已注册的对象上调用 register ,它将崩溃。这是您的应用程序中的错误!
这是链接。
所以我认为你不能在你的 onCreate() 和 onResume() 方法中调用它。