微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决应用程序在 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 举报,一经查实,本站将立刻删除。