应用程序在 X 次启动新活动后终止

问题描述

我有一个包含 2 个活动的简单应用程序:MainActivity(包含 2 个片段)和 GameActivity。 在其中一个片段“FragmentHome”中,我有一个 FloatingButton,按下后会启动我的 GameActivity。 当游戏结束时,我会显示一个带有按钮的 AlertDialog,点击后会执行:GameActivity.this.onBackpressed();用户返回到 FragmentHome,在那里他可以再次启动游戏。

有问题的场景是:用户启动游戏(从 FragmentHome FloatingButton),玩它,游戏在几秒钟内结束,用户被引导回 FragmentHome,在那里他再次启动游戏;如果要重复 7-8 次,那么在某些时候 FloatingButton 单击将终止应用程序,而不会引发 logcat 错误。我能看到的 logcat 中唯一奇怪的“提示”是 D/StrictMode: StrictMode policy conflict: android.os.strictmode.diskReadViolation 这并没有真正说明应用程序终止。

我监控了应用内存使用情况(来自Android设备本身):正常,在53MB到66MB之间。

点击时我的浮动按钮:

myView.findViewById(R.id.btnStartGame).setonClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (!AppController.appOnline) {
                    Snackbar.make(lstLuckyUsers,getString(R.string.txt_no_internet),2000).show();
                    return;
                }

                Intent gameIntent = new Intent(FragmentHome.this.context,GameActivity.class);
                FragmentHome.this.context.startActivity(gameIntent);
            }
        });

My GameActivity AlertDialog 按钮点击:

MaterialButton btnOK = dialogView.findViewById(R.id.btnOK);
        if (btnOK != null)
            btnOK.setonClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    // close dialog and game Activity
                    gameOverDialog.dismiss();
                    GameActivity.this.onBackpressed();
                }
            });

你能告诉我在哪里寻找问题吗?感觉垃圾收集器没有按预期工作,或者我使用了一个框架,这带来了麻烦。 依赖项是普通标准:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 29
    defaultConfig {
        applicationId "com.mygame.mygame"
        minSdkVersion 23
        targetSdkVersion 29
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'),'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation filetree(dir: 'libs',include: ['*.jar'])
    implementation 'androidx.appcompat:appcompat:1.2.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
    implementation 'com.google.android.material:material:1.2.1'
    implementation 'androidx.navigation:navigation-fragment:2.3.3'
    implementation 'androidx.navigation:navigation-ui:2.3.3'

    // volley lib
    implementation 'com.android.volley:volley:1.1.1'

    // FAN Ad
    implementation 'com.facebook.android:audience-network-sdk:6.0.0'

    // Google in-app Review
    implementation 'com.google.android.play:core:1.9.1'
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...