假设您要启动一个新活动并从当前活动传递一些数据。如果数据是基本类型,您可以简单地使用intent并添加额外内容,但是如何为更复杂的数据结构(如arraylists或对象)执行此操作?
答案 0 :(得分:57)
您有几个选择:
Parcelable
接口的类中,该类可以存储在额外的Serializable
接口的类中,该类可以存储在额外的SharedPreferences
)Application
或本地Service
你不想做的是通过额外的东西传递大量的东西。例如,如果您正在创建一个从相机中抓取图片的应用程序,您不希望传递其他内容 - 使用静态数据成员(听起来很icky)。意图被设计为跨进程工作,这意味着有一些数据复制正在进行,当你不需要大量的东西时你想要避免这些数据。
答案 1 :(得分:2)
我所知道的一个选项是将您正在使用的数据存储在Application对象中,您可以从上下文中检索所有活动。
我也听说过使用Google Protocol Buffer来实现更高性能的解决方案