android - 回到主页后恢复 Activity

标签 android android-intent android-activity android-lifecycle back-stack

在我的 MainActivity(启动器 Activity )中,我按下一个按钮来启动我的 GameActivity。我有它,所以当我在游戏 Activity 中点击后退按钮时,我不会返回到我的 MainActivity 而是返回到我的主屏幕。现在,当我恢复我的应用程序时,它会转到 MainActivity,而不是返回到 GameActivity,尽管已显示。


目标

Main Activity -> Game Activity -> Home -> Game Activity

当前结果

Main Activity -> Game Activity -> Home -> Home Activity


几件事..

  • 当我使用主页和菜单按钮进行导航时,它工作得很好。
  • 我的 list 中没有启动模式

让我们看看我做了什么!


主 Activity 按钮点击

 Button startButton = findViewById(R.id.buttonStart);
    startButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intent = new Intent(MainActivity.this, GameActivity.class);
            //stops back button to return to add player screen
            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);

            startActivity(intent);

        }
    });

简化 list

 <application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity
        android:name=".MainPage.MainActivity"
        android:label="@string/app_name"
        android:theme="@style/AppTheme.NoActionBar"
        android:screenOrientation="portrait"
        >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".GamePage.GameActivity"
        android:label="@string/title_activity_game"
        android:theme="@style/AppTheme.NoActionBar"
        android:screenOrientation="portrait" />
</application>

最佳答案

在这种情况下,只需在启动 GameActivity 后立即调用 finish()。

Button startButton = findViewById(R.id.buttonStart);
    startButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intent = new Intent(MainActivity.this, GameActivity.class);
            startActivity(intent);
            finish();
        }
    });

编辑:同时更新 GameActivity 的启动模式:

<activity android:name=".GameActivity" android:launchMode="singleInstance">

关于android - 回到主页后恢复 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49268240/

相关文章:

java - 我如何使用基于 Intent 的 URI 打开不和谐服务器邀请?

android - 监听更新并从服务器安装

java - 如何在不返回 size = 0 的情况下获取 ArrayList 的值?

android - OnItemCLickListener 在 ListView 中不起作用

android - 如何在 Android 的 Retrofit 库中设置连接超时?

android - 当应用程序在 Android 中处于后台时如何显示启动画面?

android - 从服务 android 启动 Activity

Android 位置权限未请求并自动拒绝

Android - 捕获图像后更新文件夹显示

java - 检测应用程序的暂停(不是 Activity 的)