这是这个问题的后续问题:
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();
}
});
在某些设备上没有问题,之前的活动会恢复。其他设备正在重新启动先前的活动而不是恢复它。那是为什么?
答案 0 :(得分:0)
这可能是因为在某些设备上,您的活动正在被垃圾收集以节省内存。如果你想恢复而不是重启,即使在android杀死你的活动的情况下覆盖onSaveInstanceState方法,并将所有变量保存在包中。
现在当你回到你的活动时,如果它被杀死了,那么在创建一个包时将传递一个名为savedINstanceState的包。如果savedInstanceState不为null,则使用其中的数据将您的活动恢复到之前的状态。
更多详细信息:How to use onSaveInstanceState() and onRestoreInstanceState()?