您好,提前感谢您的时间和关注。我实际上有 2 个问题,我不太确定构建一个 android 应用程序。我相信非常基本的东西:
1) 我的应用程序完全处于水平模式,例如 AngryBirds。当它启动时,用户发现他应该那样握住手机,如果他还没有的话。这是在清单中为所有活动设置的并且工作正常。但是有没有办法防止物理设备倾斜再次调用 onCreate ?我可以覆盖它的方法还是什么?我问的原因是因为我有一些 ButtonViews,在您单击它们后,更改它们的图片。我正在使用 onRetainNonConfigurationInstance() 来保存这些 ImageButtons 的数组,我什至使用 ImageButton setTag() 和 getTag() 方法标记更改的那些,因此当由于设备倾斜而调用 onCreate 时,它会从 getLastNonConfigurationInstance 获取保存的数组() ,但我一直在努力让它工作很长一段时间,我只是可以' 做对了。设备倾斜后(我实际上使用的是模拟器,所以它是 Ctrl+F11 但我相信它也会发生在设备上)所有的 ImageButtons 都会丢失他们的图片。长话短说 - 有没有更好的方法来做到这一点您可以推荐或阻止倾斜做任何可能或更好的事情?
2) 了解用户在屏幕上停留了多少秒的最佳方法是什么?我尝试使用通过 SystemClock.currentThreadTimeMillis() 获得的两个 long,如下所示:获取 onCreate 的开始时间,以及我调用的方法的结束时间,以便在我 startActivity 之前移动到第二个意图。但我认为因为它们是从不同的线程调用的,所以终点 - 起点是不正确的。什么方法可以确保 SystemClock.currentThreadTimeMillis() 的两个方法都是从同一个线程调用的,即我正在停止观看的活动的主线程?有没有更好的方法来解决这个问题?
再次感谢。