【发布时间】:2018-12-24 23:48:19
【问题描述】:
所以我有这两个屏幕,消息屏幕和游戏屏幕。我想要做的是当用户从任一屏幕切换回来时,它会从上一个活动恢复。
这是我的游戏屏幕中的一段代码,允许用户转到消息屏幕:
public void onMessagesButtonClick() {
Intent intent = new Intent(this, Messages.class);
startActivity(intent);
overridePendingTransition(0, 0);
}
这是一段允许用户从消息屏幕返回游戏屏幕的代码。
public void onGameButtonClick() {
Intent intent = new Intent(getApplicationContext(), Game.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(intent);
finish();
overridePendingTransition(0, 0);
}
到目前为止,我能够从游戏屏幕转到消息屏幕,然后从消息屏幕转到游戏屏幕中的活动。
我现在遇到的问题是我无法从消息屏幕恢复活动,只能从游戏屏幕恢复活动。如果我将onMessagesButtonClick() 更新为:
public void onMessagesButtonClick() {
Intent intent = new Intent(getApplicationContext(), Messages.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(intent);
finish();
overridePendingTransition(0, 0);
}
我将无法再从游戏屏幕恢复活动。就像我第一次进入屏幕一样,重新开始屏幕。
当在屏幕之间来回切换时,如何才能从两个屏幕恢复之前的活动?
【问题讨论】:
-
使用 onSaveInstanceState 保存活动的状态,并在 onCreate() 中将状态返回到 bundlesavedInstanceState 中。没那么难。
-
@Bert Hanz:我认为您应该了解using Intent Flag 用于启动活动
-
覆盖
onBackPressed()以将您带到正确的屏幕。
标签: java android android-studio android-intent