所以我有这两个屏幕,消息屏幕和游戏屏幕。我想做的是,当用户从任一屏幕切换回时,它从上一个活动恢复。
这是我的“游戏”屏幕中的一些代码,允许用户转到“消息”屏幕:
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);
}
我将不再能够从“游戏”屏幕恢复活动。就像我是第一次进入屏幕一样,重新启动屏幕。
如何在两个屏幕之间来回切换时从两个屏幕恢复以前的活动?
答案 0 :(得分:-1)
我认为https://google-developer-training.github.io/android-developer-fundamentals-course-practicals/en/Unit%201/22_p_activity_lifecycle_&_state.html 第2.1节包含您要查找的内容。
答案 1 :(得分:-1)
尝试这个
public void onGameButtonClick() {
Intent intent = new Intent();
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
setResult(RESULT_OK, intent);
finish();
overridePendingTransition(0, 0);
}
在您的游戏课上
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1) {
if(resultCode == RESULT_OK) {
//If you are going to fetch data from former activity
}
}
}