跟踪方向更改而不使用onConfigurationChanged()

时间:2016-02-05 22:14:48

标签: java android screen-orientation onconfigurationchanged

我一直致力于一项任务,只显示一个文本字段,计算时间方向的变化次数,如下所示。

我试图通过该应用程序完成的任务:

上面应用程序的代码使用onConfigurationChanged()的问题,我相信我们不会绕过活动生命周期,但我找不到一种方法来监听方向更改并增加一个计数器。 / p>

   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()这样的生命周期方法中,如果你去了主屏幕或类似的东西,它也会被调用。

1 个答案:

答案 0 :(得分:2)

执行onConfigurationChanged是正确的方法。你可以用另一种方式来做,但它的工作很多。在onSaveInstanceState中,写入计数器的当前方向和值。在onRestoreInstanceState中,同时读入。如果新方向与旧方向不匹配,请在读取后增加计数器。