扩展Activity
(不是AppCompatActivity
)的骨架应用似乎在屏幕旋转时调用onPrepareOptionsMenu
两次。
(我读过这个问题:Fragment is called twice on screen rotation。但是,我在这里没有使用Fragment
。)
这是一个错误还是一个常规行为?有没有解决方法可以避免这种情况?
MainActivity:
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;
}
}
build.gradle(模块:应用):
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 {
}
logcat(轮换后):
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
答案 0 :(得分:0)
您需要使用扩展活动的任何原因吗? 我想扩展AppCombatActivity可以防止这个错误。