我在 EventBus 中使用粘性事件将我的“选定”对象传递给即将到来的活动。detail 活动允许用户“选择”另一个对象来获取新列表。我想再次将具有相同对象类的另一个粘性事件发布到另一个列表活动中,但据我了解,以前的粘性将被覆盖。请参阅底部的示例插图。
解决此问题的推荐方法是什么?我需要在 EventBus 中拥有具有相同类的 n 嵌套粘性事件。
我真的很喜欢粘性对象,它消除了我手动连接 Android Parcelable 接口的需要,只是为了通过该Intent
机制将对象从一个活动活动发送到另一个活动。即使在获得一个完全工作的 EventBus 之后,我也不想被迫去实现 Parcelable,因为我不能嵌套粘性对象!
我想到的一种方法是Item
在 Singleton 的 ArrayList 中维护我自己的对象堆栈,在深入潜水时推送(在 startActivity 之前)并在退出时弹出(但在哪里?onDestroy
不使用),但这种方法似乎非常脆弱大部头书。我需要一个强大的机制 - 这是我的应用程序的主要导航支点。
- 项目列表,用户选择一个
Item
.Item
我们在 Intent 中使用 this 和 startActivity 发布一个带有详细视图类的粘性事件。 - 用户浏览详细信息并询问相关项目的列表。我们开始另一个显示列表的活动。
- 用户选择一个
Item
. 我们在 Intent 中使用第二个Item
和 startActivity 发布一个带有详细视图类的粘性事件。第二个Item
覆盖第一个Item
,当用户想要向上导航返回堆栈时,它不再可供读取,而是读取创建的最后一个粘性项目。