Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.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
Java 通过parcelable和本机数据结构传递的性能/差异?_Java_Android - Fatal编程技术网

Java 通过parcelable和本机数据结构传递的性能/差异?

Java 通过parcelable和本机数据结构传递的性能/差异?,java,android,Java,Android,android的新功能。更多的python贡献者在堆栈上。所以 我知道如何通过intent传递本机数据 i、 e: 我已经到了必须在活动之间传递2个以上属性(比如3个)的地步。这可能更乏味 我也知道包裹 Intent intent = new Intent(getBaseContext(), NextActivity.class); Person person = new Person(); // class that implements parcelable intent.putExtra(

android的新功能。更多的python贡献者在堆栈上。所以

我知道如何通过intent传递本机数据

i、 e:

我已经到了必须在活动之间传递2个以上属性(比如3个)的地步。这可能更乏味

我也知道包裹

Intent intent = new Intent(getBaseContext(), NextActivity.class);
Person person = new Person(); // class that implements parcelable
intent.putExtra("person", person);
startActivity(intent);
我还意识到,就性能而言,Parcelable优于通过这个令人敬畏的线程进行序列化


我的android应用程序的性能越来越令人担忧。(我有一个长期运行的socket服务,有时也会在后台上传/下载图像),因此我希望尽可能提高性能。如果有的话,这里是否有相当大的性能差异?在某一点实现parcelable是否是一种良好的做法,比如说,如果我传递的是10个键值,而不是3个键值,那么您只能将基本数据类型直接传递给活动,因此在性能方面不会得到任何不可忽略的结果

在特定时间实施parcelable是一种良好的做法吗


Parcelable
应该在数据组逻辑地连接在一起时使用-想想pojo。

谢谢,我想我确实同意这一部分的传递,这是有道理的,但我认为在序列化时也存在一些性能差异(可能是因为Serializer sdk的错误措辞)将响应数据转换为可打包的。例如,我有一个项目(人员)列表,我必须将其序列化为Parcelablente注意,当以可包裹的形式传递数据时,每个事务的限制为1MB,因此如果您的列表很大,并且有大量需要传递的数据,我会选择primitivetypes@IvanMilisavljevic此案例可能不会超过1mb,但谢谢!这一点很重要。@Dap不要担心它的性能。你看,这些都是你用来直接传递基本数据的便捷方法(putExtra方法)。您可能已经注意到,在
活动中
接收它们时,它们实际上为您打包成了一个
。至于您日益增长的性能问题,网络请求将不仅在后台线程中执行,而且将根据internet速度而不是系统资源来花费时间。@NeelKamath谢谢。我相信伊万也发表了类似的意见。您对将响应数据序列化为parcelable有何看法?
Intent intent = new Intent(getBaseContext(), NextActivity.class);
Person person = new Person(); // class that implements parcelable
intent.putExtra("person", person);
startActivity(intent);