【问题标题】:Android, performance of transferring data between activitiesAndroid,Activity之间传输数据的性能
【发布时间】:2016-08-22 05:09:41
【问题描述】:

以下两种方式中哪一种在 Activity 之间传输数据的性能更好?

  1. Activity1:putExtra("id" , customerId)

    Activity2:在表格上选择并填写Customer对象

  2. Activity1:putExtra("customer", customer)

    Activity2:Customer customer = (Customer)getIntent().getExtras().getSerialaizable("customer");

我的意思是向下一个活动发送一个唯一的项目(如 id),然后从数据库中选择它,或者将整个对象发送到下一个活动并投射它?

【问题讨论】:

  • 取决于您在下一个活动中想要什么。如果您只想要一个 id,那么为什么要将 Customer 的所有数据发送到下一个活动。
  • @VivekMishra 当然我想要对象的全部数据!
  • 然后发送整个对象
  • 此链接中的答案会有所帮助stackoverflow.com/questions/37208243/…

标签: android android-intent serialization


【解决方案1】:

显然是第一种方式。您只需发送对象的 ID,然后在第二个Activity 中从数据库中读取它。另一种方式涉及序列化/反序列化,这会消耗 CPU 周期。即使使用 Parcelable 仍然会占用大量 CPU 周期。

另一方面,我怀疑您会注意到任何性能损失,除非您为大量对象执行此操作。做任何更直接、更容易理解/维护的事情。

【讨论】:

    【解决方案2】:

    在android中不推荐Serializable,检查parcelable它是faster

    序列化与 DB 取决于对象的共谋性,只有 profiling 可以显示图片,但对于一个对象来说,它可以忽略不计。

    最快的方法是将对象存储在内存中并通过单例共享。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-04
      • 2019-01-12
      • 1970-01-01
      • 2010-10-14
      • 1970-01-01
      相关资源
      最近更新 更多