2017-02-15 56 views
0

我有2个活动,活动A和B. 活动A有一个公司(领域对象)。从活动AI进入活动B.在活动B中,您可以添加产品(领域对象),该产品保持对在活动A中选择的公司的引用。问题是,在添加产品后,活动A中公司的引用变为空,而我不明白为什么。Realmobject在活动B中更改领域数据库后丢失参考活动B

+0

您确定用户打开Activity B时,Activity A中的Realm实例没有关闭吗? – skywall

+2

提出一些代码.. – Stallion

+0

我在onPause中检查过它并没有关闭。我无法发布代码,因为它非常大。从我的观点来看,这个想法很简单。现在我想可能会有ANR错误。我试图使用异步模式执行产品插入,但它不起作用。只有当我更改活动B中的数据库时,问题才会发生。 –

回答

0

为什么当您使用领域在公司活动B中使用公司ID(假设每家公司具有主要公司ID)使用领域获取选定公司时,您将从活动A获取公司参考对象。

只需使用intent将活动B中活动B的公司唯一键传递给活动A即可。使用该唯一密钥从领域搜索该公司

Company company = realm.where(Company.class).equalTo("your company unique key column name",uniqueKeyPassFromActivityAForSelectedCompany).findFirst(); 

使用该公司从领域数据库取得的对象将其引用到您的产品对象。希望这会有所帮助

注意:我依赖于我的记忆从它的唯一键找到领域对象。所以上面的语法可能有错别字。