Android OnPrepareOptions菜单在屏幕旋转时被调用两次

Android OnPrepareOptions菜单在屏幕旋转时被调用两次,android,android-orientation,android-optionsmenu,Android,Android Orientation,Android Optionsmenu,扩展活动(而不是AppCompatActivity)的框架应用程序似乎在屏幕旋转时调用了两次onprepareOptions功能表 (我读了这个问题:。但是,我没有在这里使用片段。) 这是错误还是常规行为?有什么办法可以避免这种情况吗 main活动: import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.vie

扩展
活动
(而不是
AppCompatActivity
)的框架应用程序似乎在屏幕旋转时调用了两次
onprepareOptions功能表

(我读了这个问题:。但是,我没有在这里使用
片段。)

这是错误还是常规行为?有什么办法可以避免这种情况吗

main活动:

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.View;

public class MainActivity extends Activity {
    private int count = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        Log.d("onCreate", "called");
        super.onCreate(savedInstanceState);
        setContentView(new View(this));
    }

    @Override
    public boolean onPrepareOptionsMenu(Menu menu) {
        Log.d("onPrepareOptionsMenu", "called " + ++count);
        return true;
    }
}
apply plugin: 'com.android.application'

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.0"
    defaultConfig {
        applicationId "com.rotationtest"
        minSdkVersion 21
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
}
03-28 23:58:40.134 3358-3358/com.rotationtest D/onCreate: called
03-28 23:58:40.141 3358-3358/com.rotationtest D/onPrepareOptionsMenu: called 1
03-28 23:58:40.141 3358-3358/com.rotationtest D/onPrepareOptionsMenu: called 2
build.gradle(模块:应用程序):

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.View;

public class MainActivity extends Activity {
    private int count = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        Log.d("onCreate", "called");
        super.onCreate(savedInstanceState);
        setContentView(new View(this));
    }

    @Override
    public boolean onPrepareOptionsMenu(Menu menu) {
        Log.d("onPrepareOptionsMenu", "called " + ++count);
        return true;
    }
}
apply plugin: 'com.android.application'

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.0"
    defaultConfig {
        applicationId "com.rotationtest"
        minSdkVersion 21
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
}
03-28 23:58:40.134 3358-3358/com.rotationtest D/onCreate: called
03-28 23:58:40.141 3358-3358/com.rotationtest D/onPrepareOptionsMenu: called 1
03-28 23:58:40.141 3358-3358/com.rotationtest D/onPrepareOptionsMenu: called 2
logcat(旋转后):

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.View;

public class MainActivity extends Activity {
    private int count = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        Log.d("onCreate", "called");
        super.onCreate(savedInstanceState);
        setContentView(new View(this));
    }

    @Override
    public boolean onPrepareOptionsMenu(Menu menu) {
        Log.d("onPrepareOptionsMenu", "called " + ++count);
        return true;
    }
}
apply plugin: 'com.android.application'

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.0"
    defaultConfig {
        applicationId "com.rotationtest"
        minSdkVersion 21
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
}
03-28 23:58:40.134 3358-3358/com.rotationtest D/onCreate: called
03-28 23:58:40.141 3358-3358/com.rotationtest D/onPrepareOptionsMenu: called 1
03-28 23:58:40.141 3358-3358/com.rotationtest D/onPrepareOptionsMenu: called 2

您需要使用扩展活动的任何原因?
我想扩展AppCombatActivity可以防止此错误。

谢谢您的建议。如果我急需解决这个问题,我会使用
AppCompatActivity
。现在我只是想知道这是不是一个错误。因此,我也向AOSP报告了()。