Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.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_Android Activity - Fatal编程技术网

Android 如何使用非基本对象在活动之间进行通信

Android 如何使用非基本对象在活动之间进行通信,android,android-activity,Android,Android Activity,活动是否可以使用用户定义的对象进行通信 p、 美国。 据我所知,当我希望活动相互通信时,我必须使用基本类型的对象,如int、String、boolean等 我们不使用可序列化、可打包和静态类 Intent myintent=newintent(Info.this,GraphDiag.class).putExtra(“,value”); 星触觉(myintent); 在父活动中使用上述代码 在儿童活动中 int s= getIntent().getIntExtra("<StringNam

活动是否可以使用用户定义的对象进行通信

p、 美国。

  • 据我所知,当我希望活动相互通信时,我必须使用基本类型的对象,如int、String、boolean等

  • 我们不使用可序列化、可打包和静态类

  • Intent myintent=newintent(Info.this,GraphDiag.class).putExtra(“,value”);
    星触觉(myintent);
    
    在父活动中使用上述代码

    在儿童活动中

    int s= getIntent().getIntExtra("<StringName>");
    
    int s=getIntent().getIntExtra(“”);
    

    在相同的情况下,如果在校准意图时谈论附加值,则可以在对象中实现Serializable或interface来传递它们


    您还可以将该对象放入自己的类实现中,并在活动或服务类中访问它。但请记住,以这种方式共享状态可能是设计中更普遍问题的标志。

    您有几个选择:

    1.您可以将更复杂的结构封装在实现Parcelable接口的类中,该接口可以存储在一个额外的容器中

    2.您可以将更复杂的结构封装在实现可序列化接口的类中,该接口可以存储在额外的

    3.使用静态数据成员传递数据,因为它们都在同一个过程中

    4.使用外部存储(文件、数据库、共享引用)

    5.正如刚刚发布的人所指出的,使用公共组件,例如定制应用程序或本地服务

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


    回答copy from

    its for primitive data type不适用于问题中询问的非primitive谢谢用户333,但我想使用非primitive类型。您判断的方式不适用于非基本类型。你还有其他想法吗?有一种方法虽然不是一个好的实践,但它可以用作公共静态,然后在任何类中都可以访问。谢谢你,mcveat。除了可序列化或可打包接口,还有其他实现方法吗?@Charles Wu也许我对这个问题的回答会给你一些其他提示:
    int s= getIntent().getIntExtra("<StringName>");