我一直在做一项作业,该作业仅显示一个文本字段,计算方向更改的时间数量,如下所示。
我想通过该应用程序实现什么目标:
上述应用程序代码的问题是使用 onConfigurationChanged(),我相信我们不应该绕过 Activity 生命周期,但我找不到监听方向变化并增加计数器的方法。
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
Log.i(TAG, "ORIENTATION HAS CHANGED");
mCurrentIndex++;
TextView text= (TextView) findViewById(R.id.myTextView);
text.setText("Orientation changes: " + oChanges());
}
这是我目前使用的,因为如果我将 mCurrentIndex(我的计数器)放入像 onPause() 这样的生命周期方法中,如果您进入主屏幕或类似的东西,它也会被调用。
最佳答案
执行 onConfigurationChanged 是正确的方法。你可以用另一种方式来做,但它的工作量很大。在onSaveInstanceState中,写入计数器的当前方向和值。在onRestoreInstanceState中,将两者都读入。如果新方向与旧方向不匹配,则读入后递增计数器。
关于java - 不使用 onConfigurationChanged() 跟踪方向变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35234477/