Java 是否再次传递可序列化对象或查询数据库?

Java 是否再次传递可序列化对象或查询数据库?,java,android,android-intent,serializable,Java,Android,Android Intent,Serializable,我在MainActivity上实例化了一个FoodObject。我想展示EditActivity,其中FoodObject填充EditActivity上的相应字段,并准备进行编辑 我看到两种选择: (1) 将FoodObject的_id传递给EditActivity,并让它使用Loader查询数据库以获取FoodObject,等等。 -或 (2) 使用intent.putExtra()将EditActivity作为可序列化对象直接传递给FoodObject 我对Android/Java非常陌生(

我在MainActivity上实例化了一个FoodObject。我想展示EditActivity,其中FoodObject填充EditActivity上的相应字段,并准备进行编辑

我看到两种选择: (1) 将FoodObject的_id传递给EditActivity,并让它使用Loader查询数据库以获取FoodObject,等等。 -或 (2) 使用intent.putExtra()将EditActivity作为可序列化对象直接传递给FoodObject

我对Android/Java非常陌生(不过obj-c使用了很多年),所以我不确定什么是最佳实践


非常感谢您的反馈。

最佳做法是传入对象的ID,然后在EditActivity中重新查询它。您还应该尽可能远离可序列化的
Serializable
,因为它的性能不太好(请参阅)。

谢谢!这就是我所想的。我一定会查看链接的。@James McCracken我对你发表的那篇文章相当怀疑。在Android中,将对象从一个活动传递到另一个活动时,将使用Serialisable。文章指出,捆绑和解绑可序列化文件的过程在Desire Z上需要4毫秒。当设备上从一个活动过渡到另一个活动需要500毫秒时(只是猜测),这又有什么关系呢?此外,是什么让您认为查询数据库会比指定的4ms更快?绑定和解包将与您正在运行的任何其他逻辑一起发生在UI线程上。这比17ms的阈值更接近4ms,可以降低60fps的用户界面速度,给最终用户一个不稳定的体验。事实上,查询数据库可能需要更长的时间,但查询可以在UI线程之外完成。