我想写一个.apk来测量旋转Android设备的屏幕需要多长时间(通过几次旋转循环)。知道什么时候旋转完成使用setRequestedOrientation
我使用呼叫setRequestedOrientation()
到reoriente在4个位置(PORTRAIT
,LANDSCAPE
,REVERSE_PORTRAIT
和REVERSE_LANDSCAPE
)屏幕。
我的问题是我不能当转动完成告知。我尝试了一些解决方案,但每个解决方案都存在问题。
- 我试着用。问题在于当传感器发生方向改变时,此方法被触发,而不是从
setRequestedOrientation()
。其实,我调用setRequestedOrientation()
与FULL_SENSOR
参数onConfigurationChanged
我以前调用setRequestedOrientation()
后,开始工作。 - 我曾试图使
setRequestedOrientation()
排序“阻塞”的,通过添加一个while循环来检查屏幕方向(度)。我在setRequestedOrientation()
之前调用了android.view.Display.getRotation()
,并使用while循环进行阻塞,直到它发生变化。不幸的是,它也不起作用。它在UI重新显示之前返回。 - 我曾试图按照活动的生命周期,通过等待
onCreate()
来再次调用,承担旋转已完成。以前,我一直在循环,直到我的计数器达到一个值,在每次迭代中调用setRequestedOrientation()
。在这种情况下,我while循环if语句变成了,我认为onCreate
会调用该函数每一次,但onCreate()
没有得到几次迭代后调用。用户界面似乎也没有重新绘制。 - 我在网上找到的最终解决方案(但尚未完全实现)是在
setRequestedOrientation()
之后立即使用waitForIdleSync()
方法。waitForIdleSync()
是Instrumentation类的一部分,我认为这只是用于测试而不是用于标准的.apk。
任何想法都会非常受欢迎。我将衷心感谢您的帮助。