嗨,谢谢您的时间和关注。
我实际上有2个问题,我不太确定要构建一个Android应用程序。我相信很基本的东西:

1)我的应用程序完全处于水平模式,例如AngryBirds。当启动时,用户会发现他应该那样握手机(如果还没有的话)。这是在清单中为所有活动设置的,并且工作正常。但是有办法防止物理设备倾斜以再次调用onCreate吗?我可以覆盖它的方法还是其他?我问的原因是,因为我有一些ButtonView,单击它们后,更改其图片。我正在使用onRetainNonConfigurationInstance()保存那些ImageButton的数组,甚至标记那些通过ImageButton setTag()和getTag()方法更改的数组,因此,由于设备倾斜而调用onCreate时,它将从getLastNonConfigurationInstance获取保存的数组(),但是我已经尝试使它工作了一段时间了,但我做对了。设备倾斜之后(我实际上正在使用仿真器,因此它是Ctrl + F11,但我相信它也会在设备上发生),所有ImageButton松开其图片。您可以建议还是防止倾斜做任何事情是可能的或更好的?

2)知道用户在屏幕上停留了几秒钟的最佳方法是什么?我尝试使用通过SystemClock.currentThreadTimeMillis()获取的两个long,如下所示:获取startCreate的开始时间,以及我调用start方法之前要移至第二个意图的方法的结束时间。但我认为,因为它们是从不同的线程调用的,所以终点-起点不正确。确保从同一线程(我正在监视的活动的主线程)调用SystemClock.currentThreadTimeMillis()的这两种方法的方法是什么?有没有更好的方法来解决此问题?

再次感谢。

最佳答案

您有权处理方向变更。请参考此链接http://developer.android.com/guide/topics/resources/runtime-changes.html。这将帮助您使其正常运行。
好的方法是计算onResume和onPause之间的时间。如果要恢复活动,则不会一直调用OnCreate。

10-04 12:28