如何恢复多个活动的屏幕活动?

时间:2018-12-24 23:48:20

标签: java android android-studio android-intent

所以我有这两个屏幕,消息屏幕和游戏屏幕。我想做的是,当用户从任一屏幕切换回时,它从上一个活动恢复。

这是我的“游戏”屏幕中的一些代码,允许用户转到“消息”屏幕:

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);
}

我将不再能够从“游戏”屏幕恢复活动。就像我是第一次进入屏幕一样,重新启动屏幕。

如何在两个屏幕之间来回切换时从两个屏幕恢复以前的活动?

2 个答案:

答案 0 :(得分:-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
            }
    }
}