Android 如何使用非基本对象在活动之间进行通信
活动是否可以使用用户定义的对象进行通信 p、 美国。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
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 fromits for primitive data type不适用于问题中询问的非primitive谢谢用户333,但我想使用非primitive类型。您判断的方式不适用于非基本类型。你还有其他想法吗?有一种方法虽然不是一个好的实践,但它可以用作公共静态,然后在任何类中都可以访问。谢谢你,mcveat。除了可序列化或可打包接口,还有其他实现方法吗?@Charles Wu也许我对这个问题的回答会给你一些其他提示:
int s= getIntent().getIntExtra("<StringName>");