我的应用程序有几个片段和活动。在主要父活动的生命周期中,应用程序在其他活动中向用户提供信息/选项。
Fragments 的文档对 commit() 有以下规定:
注意:您只能在活动保存其状态之前(当用户离开活动时)使用 commit() 提交事务。如果您在该点之后尝试提交,则会引发异常。这是因为如果需要恢复活动,提交后的状态可能会丢失。对于丢失提交没关系的情况,请使用 commitAllowingStateLoss()。
问题是在返回父活动后,我不能再使用 FragmentTransactions,这是我在应用程序中设计导航方式不可或缺的一部分。
我想到的一种解决方案是将我的活动更改为片段,但是我的应用程序最终也将使用应用内计费,我相信这将始终启动自己的活动。这似乎是一个巨大的限制——在开发的某个阶段,我最终将不得不显示一个单独的活动。
我可能会使用 commitAllowingStateLoss() 侥幸逃脱,但我觉得我错过了 Android 平板电脑应用程序开发中的一个主要概念。有没有办法在不失去提交 FragmentTransactions 的能力的情况下启动活动然后返回父活动(管理片段)?