java - 不使用 onConfigurationChanged() 跟踪方向变化

标签 java android screen-orientation onconfigurationchanged

我一直在做一项作业,该作业仅显示一个文本字段,计算方向更改的时间数量,如下所示。

我想通过该应用程序实现什么目标:

上述应用程序代码的问题是使用 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/

相关文章:

android - 如何在方向改变时保持沉浸式模式?

java - 即使依赖 Bean 存在,创建 Bean 时出错

java - 地理编码器的 RPC 错误

android - 将文本(或字符)与用户在 edittext for android 中的输入相结合

java - 从 Base64 和 GZIP 解压缩位图

ios - 横向时的 UIPageControl 和 UIScrollView

java - 如何将我的 android 程序的布局锁定到一个方向

java - 我需要测试 void、任何 GUI 处理程序或网络操作方法吗?

java - 无法访问提供者类的方法

java - "import java.util.*; or import java.util.random;"