Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在android中的活动之间传递非原始类型的数据_Android_Data Structures_Android Activity - Fatal编程技术网

在android中的活动之间传递非原始类型的数据

在android中的活动之间传递非原始类型的数据,android,data-structures,android-activity,Android,Data Structures,Android Activity,假设您要启动一个新活动,并向其传递当前活动中的一些数据。如果数据是基元类型,您可以简单地使用intent并添加额外数据,但对于更复杂的数据结构(如ArrayList或object),您将如何执行此操作?我知道的一个选项是将您正在使用的数据存储在一个应用程序对象中,您的所有活动都可以从上下文中检索 我还听说过使用来实现更高性能的解决方案您有几个选择: 您可以将更复杂的结构封装在实现Parcelable接口的类中,该接口可以存储在额外的 您可以将更复杂的结构封装在一个类中,该类实现了可序列化接口,该

假设您要启动一个新活动,并向其传递当前活动中的一些数据。如果数据是基元类型,您可以简单地使用intent并添加额外数据,但对于更复杂的数据结构(如ArrayList或object),您将如何执行此操作?

我知道的一个选项是将您正在使用的数据存储在一个应用程序对象中,您的所有活动都可以从上下文中检索


我还听说过使用来实现更高性能的解决方案

您有几个选择:

  • 您可以将更复杂的结构封装在实现
    Parcelable
    接口的类中,该接口可以存储在额外的
  • 您可以将更复杂的结构封装在一个类中,该类实现了
    可序列化接口,该接口可以存储在一个额外的
  • 您可以使用静态数据成员传递数据,因为它们都在同一个过程中
  • 您使用外部存储(文件、数据库、
    SharedReferences
  • 正如刚刚发布的人所指出的,使用一个公共组件,例如自定义
    应用程序
    或本地
    服务

  • 你不想做的是通过额外的东西传递大的东西。例如,如果您正在创建一个从相机上抓取图片的应用程序,那么您不希望将这些图片以额外的方式传递——使用静态数据成员(听起来很讨厌)。意图被设计为跨流程工作,这意味着存在一定数量的数据复制,在不需要大数据时,您希望避免这种复制。

    正如我所怀疑的,有一系列选项。谢谢对于这个特殊的项目,我选择了选项3。虽然不漂亮,但它很管用!我是个包裹迷。。。它们很容易建造,也很容易通过。我讨厌它们。它们是维护的噩梦,非常容易出错。与简单地将对象作为可序列化对象传递相比,唯一的优势是性能更好。-对于选项1和2。在尝试使用包裹时非常方便,希望它能帮助别人:)我读过一些反对应用对象的帖子,比如