Android on back press先前的活动重新启动而不是恢复

时间:2017-09-03 13:37:07

标签: android android-activity

这是这个问题的后续问题:

How to resume activity instead of restart when going "up" from action bar

我有2个活动,两个活动都在android:launchMode="singleTop"的清单中定义。

活动A调用活动B.活动B得到一个后退按钮:

backButton.setOnClickListener(new View.OnClickListener()
    {
        @Override
        public void onClick(View view)
        {
            finish();
        }
    });

在某些设备上没有问题,之前的活动会恢复。其他设备正在重新启动先前的活动而不是恢复它。那是为什么?

1 个答案:

答案 0 :(得分:0)

这可能是因为在某些设备上,您的活动正在被垃圾收集以节省内存。如果你想恢复而不是重启,即使在android杀死你的活动的情况下覆盖onSaveInstanceState方法,并将所有变量保存在包中。

现在当你回到你的活动时,如果它被杀死了,那么在创建一个包时将传递一个名为savedINstanceState的包。如果savedInstanceState不为null,则使用其中的数据将您的活动恢复到之前的状态。

更多详细信息:How to use onSaveInstanceState() and onRestoreInstanceState()?