这是一个直截了当的问题,但我找不到任何明确的信息来帮助我做出决定。
我有一个包含 2 个表格(2 个活动)的应用程序,这些表格为给定对象填写,清除,然后为下一个对象填写。在给定应用程序的运行期间,这可能会完成 100 次以上。因此,backstack 可以填充 100 多个活动。
所有这些数据都保存到一个 sqlite 数据库中,所以我应该允许 backstack 像那样填充吗?性能影响是什么 - 存储数百个表单实例肯定会开始产生影响。这些实例是否足够有效地存储以至于我不必担心这一点,或者后台堆栈是否有某种限制?有没有办法让 backstack 只存储输入的数据,或者保存的“实例”是否仅由输入的数据组成?查询一个 sqlite 数据库 onbackpressed 而不是比允许 backstack 加载以前的表单效率低得多?有没有办法重新加载现有实例 alaFLAG_ACTIVITY_SINGLE_TOP
并清除现有输入的数据,但将其(数据)保存在后台堆栈中?
我一直在阅读/告诉我修改后退按钮的行为、backstack 和 android 的活动管理是一个坏主意,这让我作为一个 android 新手尝试这样做。
我认为这两种形式的数据的大小不会超过这个问题的第 2 段,仅供参考。
感谢您的帮助。
编辑以回应 JoxTraex:
fill -> add -> fill -> add -> n -> commit
那么可能是
fill activity A and then instantiate and fill B -> transact to DB -> REinstantiate and fill A then REinstantiate and fill B -> transact to DB -> n -> commit
我理解正确了吗?
如果是这样,重新加载而不是实例化 A 和 B 的新实例应该可以解决 backstack 问题,因为其中只会有 2 个活动。
这导致人们对onbackpressed
将要做什么感到困惑——它会重新加载先前输入的数据还是工作不超过两次,因为后台堆栈中只有 2 个活动?