假设您想启动一个新 Activity 并从当前 Activity 中传递一些数据。如果数据是原始类型,您可以简单地使用 Intent 并添加额外内容,但是对于更复杂的数据结构,如数组列表或对象,您将如何做到这一点?
最佳答案
你有几个选择:
- 您可以将更复杂的结构包装在实现
Parcelable
接口(interface)的类中,该接口(interface)可以存储在额外的 - 您可以将更复杂的结构包装在实现
Serializable
接口(interface)的类中,该接口(interface)可以存储在额外的 - 您使用静态数据成员来传递东西,因为它们都在同一个进程中
- 您使用外部存储(文件、数据库、
SharedPreferences
) - 正如刚刚发帖的人所说,使用通用组件,例如自定义
Application
或本地Service
你不想做的是通过额外的东西传递大的东西。例如,如果您正在创建一个从相机中抓取图片的应用程序,您不希望将它们传递给额外的 - 使用静态数据成员(听起来很恶心)。 Intent 被设计为跨进程工作,这意味着会进行一定数量的数据复制,当不需要大数据时,您希望避免这种情况。
关于android - 在android中的 Activity 之间传递非原始类型的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1441871/