目前我有一个主 Activity ,它有许多按钮,这些按钮通向其他屏幕,允许用户建立一些搜索条件。搜索条件通过 intent 的 extras 传递回主要 Activity 。
子 Activity 从 StartActivityForResult 开始,然后当用户做出选择时,我调用 finish() 返回主屏幕。
但是我现在想将子 Activity 保留在内存中,以便用户可以返回,查看他们输入的内容并调整搜索条件,而不是从头开始重新输入。如何在不丢失子 Activity 状态的情况下切换回我的主要 Activity ?
谢谢,
米
最佳答案
根据您的描述,主 Activity 似乎从所有子 Activity 接收数据。听起来这些数据也足以恢复每个子 Activity 的状态。
您可以在 Intent
中使用已知的搜索条件开始子 Activity 。因此每个子 Activity 都可以从 onCreate()
上的 Intent 恢复其状态。
这是一系列事件:
- 应用程序启动,主 Activity 启动。
- 用户按下按钮:Main Activity -> Intent (empty) -> Sub-Activity
- 用户完成的搜索条件:
子 Activity 返回 -> Intent (搜索条件) -> 主 Activity - 用户按下按钮:主 Activity -> Intent (搜索条件) -> 子 Activity
因此在第 4 步 Main Activity 将传递第 3 步收到的状态。
关于android - finish() 的替代方法,用于从 View 中删除 Activity。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7316070/