android 在TargetSDK 33中调用了两次MainActivity onCreate,minSDK为24

d6kp6zgx  于 2023-05-27  发布在  Android
关注(0)|答案(1)|浏览(144)

我试图理解为什么主启动器活动启动两次,只要我第一次安装应用程序。
我刚刚创建了空活动并添加了活动生命周期日志。
任何想法,这可能是什么原因?

这是我的活动代码:

package com.ninja.myapplications;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.util.Log;

public class MainActivity extends AppCompatActivity {

    String TAG = "Debug";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Log.i(TAG, "onCreate");
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.i(TAG,"onDestroy");
    }

    @Override
    protected void onStop() {
        super.onStop();
        Log.i(TAG,"onStop");
    }

    @Override
    protected void onResume() {
        super.onResume();
        Log.i(TAG,"onResume");
    }

    @Override
    protected void onPause() {
        super.onPause();
        Log.i(TAG,"onPause");
    }
}

Manifest.xml代码如下:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">

    <application
        android:allowBackup="true"
        android:dataExtractionRules="@xml/data_extraction_rules"
        android:fullBackupContent="@xml/backup_rules"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.MyApplications"
        tools:targetApi="31">
        <activity
            android:name=".MainActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

这里是build.gradle文件

plugins {
    id 'com.android.application'
}

android {
    namespace 'com.ninja.myapplications'
    compileSdk 33

    defaultConfig {
        applicationId "com.ninja.myapplications"
        minSdk 24
        targetSdk 33
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

输出如下

注意:我尝试了singleTopsingleInstance作为该launcherActivity中的launchMode。但那没用

sdnqo3pr

sdnqo3pr1#

我尝试使用你的代码创建一个新项目,但我的启动正常(只调用了onCreate一次)。如果您查看所有日志,而不是像屏幕截图中那样只过滤调试日志,您可能会发现一些关于它为什么重新启动的线索。特别是,检查第一个“onResume”和其后的“onPause”之间的日志。

相关问题