【发布时间】:2015-04-19 18:24:09
【问题描述】:
我有两个活动,我想在它们之间切换而不重新创建或复制它们。每个活动都有一个按钮,该按钮将使用带有 FLAG_ACTIVITY_REORDER_TO_TOP 的意图将用户发送到另一个。
这很好用,但以下情况除外:
- 强制关闭后重新启动应用程序
- 点击按钮进入活动 2
- 点击按钮返回活动 1
- 旋转屏幕。
此时,应用程序崩溃并显示“执行停止未恢复的活动”。 Lollipop 只是显示黑屏。
奇怪的是,如果您在第 4 步之前进入主屏幕并恢复应用程序然后旋转上述条件没有任何问题,并且应用程序可以正常工作,直到它被关闭/重新启动。
这种情况似乎是 FLAG_ACTIVITY_REORDER_TO_TOP 所特有的,并且在 Android 5.0 和 4.4 上发生,并且仅在重新开始时发生。
我对清单中的活动没有任何属性。布局只有一个按钮,它调用如下所示的方法:
MainActivity:
public void goSecond(View v) {
Intent i = new Intent(this, SecondActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(i);
}
SecondActivity:
public void goFirst(View v) {
Intent i = new Intent(this, MainActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(i);
}
我没有覆盖任何其他生命周期方法或做任何其他事情。
有什么想法吗?
【问题讨论】:
标签: android android-intent android-activity