Android 安卓:按下“恢复列表数据”键时如何恢复列表数据;“后退”;按钮

Android 安卓:按下“恢复列表数据”键时如何恢复列表数据;“后退”;按钮,android,android-activity,Android,Android Activity,我的问题是,当使用“返回”按钮返回活动时,如何恢复与活动相关的复杂数据。 活动A有一个ListView,它连接到ArrayAdapter作为其数据源-这发生在onCreate()中 默认情况下,如果我移动到活动B并按“上一步”返回到活动A,我的列表是否与所有数据保持不变,还是只是获得屏幕的可视“副本”,但数据丢失 当涉及多个活动时,我能做什么?假设活动A启动活动B,活动B启动活动C,然后我按“后退”两次返回到A。当A返回前台时,我如何确保A数据的完整性?PrefsManager似乎不能非常直观地

我的问题是,当使用“返回”按钮返回活动时,如何恢复与活动相关的复杂数据。 活动A有一个ListView,它连接到ArrayAdapter作为其数据源-这发生在onCreate()中

  • 默认情况下,如果我移动到活动B并按“上一步”返回到活动A,我的列表是否与所有数据保持不变,还是只是获得屏幕的可视“副本”,但数据丢失
  • 当涉及多个活动时,我能做什么?假设活动A启动活动B,活动B启动活动C,然后我按“后退”两次返回到A。当A返回前台时,我如何确保A数据的完整性?PrefsManager似乎不能非常直观地处理复杂对象

  • 谢谢,Rob

    除非您主动
    finish()
    活动A当您启动活动B时,它的数据和状态将在您返回活动B时全部显示,无论您累积了多少活动。

    除非您主动
    finish()
    Activity A当您启动Activity B时,当您返回它时,它的数据和状态都将出现,无论您累积了多少个活动

    活动A有一个ListView,它是 连接到ArrayAdapter,用作 其数据源

    请注意,
    ArrayAdapter
    不是持久存储

    默认情况下,如果我移动到活动B 然后按“后退”返回到 活动A,我的名单保持不变吗 有了所有的数据还是我只需要 屏幕的可视“复制”,但 数据丢失了吗

    那要看情况

    通常,
    Activity
    A没有出现。但是,如果用户长时间离开应用程序,Android可能会销毁
    Activity
    A,在活动堆栈中留下一个占位符,以释放内存。如果用户稍后按下,Android将重新创建
    Activity
    A。您需要在通过使用持久性存储(文件、数据库等)或使用
    onSaveInstanceState()
    onRestoreInstanceState()
    ,都是如此

    您可以在“活动类说明”部分中找到更多信息

    活动A有一个ListView,它是 连接到ArrayAdapter,用作 其数据源

    请注意,
    ArrayAdapter
    不是持久存储

    默认情况下,如果我移动到活动B 然后按“后退”返回到 活动A,我的名单保持不变吗 有了所有的数据还是我只需要 屏幕的可视“复制”,但 数据丢失了吗

    那要看情况

    通常,
    Activity
    A没有出现。但是,如果用户长时间离开应用程序,Android可能会销毁
    Activity
    A,在活动堆栈中留下一个占位符,以释放内存。如果用户稍后按下,Android将重新创建
    Activity
    A。您需要在通过使用持久性存储(文件、数据库等)或使用
    onSaveInstanceState()
    onRestoreInstanceState()
    ,都是如此


    您可以在“活动类说明”部分找到更多信息。

    这不一定正确。Android可能会选择销毁该活动以释放RAM供其他处理。谢谢您的回复,David。这不一定正确。Android可能会选择销毁该活动以释放RAM供其他处理。谢谢您的回复,大卫。