android - finish() 的替代方法,用于从 View 中删除 Activity。

标签 android android-activity

目前我有一个主 Activity ,它有许多按钮,这些按钮通向其他屏幕,允许用户建立一些搜索条件。搜索条件通过 intent 的 extras 传递回主要 Activity 。

子 Activity 从 StartActivityForResult 开始,然后当用户做出选择时,我调用 finish() 返回主屏幕。

但是我现在想将子 Activity 保留在内存中,以便用户可以返回,查看他们输入的内容并调整搜索条件,而不是从头开始重新输入。如何在不丢失子 Activity 状态的情况下切换回我的主要 Activity ?

谢谢,

最佳答案

根据您的描述,主 Activity 似乎从所有子 Activity 接收数据。听起来这些数据也足以恢复每个子 Activity 的状态。

您可以在 Intent 中使用已知的搜索条件开始子 Activity 。因此每个子 Activity 都可以从 onCreate() 上的 Intent 恢复其状态。

这是一系列事件:

  1. 应用程序启动,主 Activity 启动。
  2. 用户按下按钮:Main Activity -> Intent (empty) -> Sub-Activity
  3. 用户完成的搜索条件:
    子 Activity 返回 -> Intent (搜索条件) -> 主 Activity
  4. 用户按下按钮:主 Activity -> Intent (搜索条件) -> 子 Activity

因此在第 4 步 Main Activity 将传递第 3 步收到的状态。

关于android - finish() 的替代方法,用于从 View 中删除 Activity。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7316070/

相关文章:

Android 在主题为深色时更改品牌启动背景颜色

android - 使用 recreate() 方法和 startActivity(getIntent()) 重新创建 Activity 的区别

拍照后 Android Activity 重置(方向?)

android - 在 Android 中处理 "blocking"长时间运行的操作

android - ListView getCheckedItemPositions 调用问题

android - 如何创建可下载的许可证 key ,并在 Android 上检查它

android - 溢出 :hiden with border-radius on mobile browser

android - 无法在 Mac 上的 Android Studio 上创建虚拟设备

android - 从服务中获取有关当前显示 Activity 的信息

java - 关于Android App Lock服务的问题