【发布时间】:2019-06-20 13:18:17
【问题描述】:
如果我在一项活动中列出了某些项目(比如水果)。这里的项目完全从 ROOM 数据库加载。
单击Fruit 应该会将您带到FruitDetailPage。当然,我必须将Fruit 传递给带有Intent 的新活动。
但是什么会更好呢?
- 传递完整的水果对象
- 传递
fruit_id并在新活动中从数据库中重新加载水果对象
【问题讨论】:
标签: android design-patterns architecture
如果我在一项活动中列出了某些项目(比如水果)。这里的项目完全从 ROOM 数据库加载。
单击Fruit 应该会将您带到FruitDetailPage。当然,我必须将Fruit 传递给带有Intent 的新活动。
但是什么会更好呢?
fruit_id 并在新活动中从数据库中重新加载水果对象【问题讨论】:
标签: android design-patterns architecture
传递对象会更好,因为包有大小限制,因此,随着对象的字段增加,您可以捕获错误。您还需要在内存中保留更少的空间。最重要的是,您不必编写额外的代码并从 Parcelabe 继承您的对象。
【讨论】:
在您的列表活动中:
int fruitId = 5;
Intent i = new Intent(this/*activity*/, FruitDetailPage.class);
i.putExtra("fruit_id", fruitId);
startActivity(i);
在您的 FruitDetailPage 活动中:
void onCreate(Bundle bundle) {
super.onCreate(bundle);
int fruitId = getIntent().getIntExtra("fruit_id", -1);
}
【讨论】: