android - 在android中的 Activity 之间传递非原始类型的数据

标签 android data-structures android-activity

假设您想启动一个新 Activity 并从当前 Activity 中传递一些数据。如果数据是原始类型,您可以简单地使用 Intent 并添加额外内容,但是对于更复杂的数据结构,如数组列表或对象,您将如何做到这一点?

最佳答案

你有几个选择:

  1. 您可以将更复杂的结构包装在实现 Parcelable 接口(interface)的类中,该接口(interface)可以存储在额外的
  2. 您可以将更复杂的结构包装在实现 Serializable 接口(interface)的类中,该接口(interface)可以存储在额外的
  3. 您使用静态数据成员来传递东西,因为它们都在同一个进程中
  4. 您使用外部存储(文件、数据库、SharedPreferences)
  5. 正如刚刚发帖的人所说,使用通用组件,例如自定义 Application 或本地 Service

你不想做的是通过额外的东西传递大的东西。例如,如果您正在创建一个从相机中抓取图片的应用程序,您不希望将它们传递给额外的 - 使用静态数据成员(听起来很恶心)。 Intent 被设计为跨进程工作,这意味着会进行一定数量的数据复制,当不需要大数据时,您希望避免这种情况。

关于android - 在android中的 Activity 之间传递非原始类型的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1441871/

相关文章:

c++ - 绳索数据结构的拆分操作

android - 如何检查 Activity 是在前台还是在可见背景中?

android - 无法触发 onActivityResult() android?

android - 无法将 Nexus 4 连接到 adb : unauthorized

java - 图中两个节点之间的深度优先搜索和广度优先搜索

android - 如何更改android中开关的背景?

哈希中的冲突检查

java - 资源文件中的最终变量

android - 无法使用 android 模拟器上的 Firestore 模拟器访问云 Firestore 后端

javascript - 如何为我的 iPhone 和 Android 网络应用程序制作框架?