Android的 - 在旋转

问题描述:

我知道这是一个重复的问题,我知道,当设备旋转时,onCreate方法被再次调用,我想保持这样的活动刷新;我不想通过覆盖onConfigurationChanged或对我的Application类进行子类别划分的步骤,因为android以最佳方式进行重新加载(特别是在保存当前值和状态时)。Android的 - 在旋转

但是,我有一些命令内的OnCreate方法,我不想执行它们,如果由于旋转重新加载活动,所以有任何属性/方法可以告诉OnCreate是否由于第一次应用程序触发开始还是由于方向改变?

例如:
if(< OnCreate triggered due to Orientation > == false)
// Execute my commands...
else
// Do nothing...

另外,我们在Android的任何事件的OnCreate之前或OnConfigurationChanged之前被触发?

+0

根据记录,这是讨论[这里] [1] [1]:http://*.com/q/7295804/1002902 – tos 2012-03-16 13:53:50

为什么不保存在SharedPreferences当前的方向和的onCreate当前方向比较存储的值(并保存新的方向,以SharedPreferences)?

这应该提供您所需的功能,除非我误解的东西。

尝试使用onSaveInstanceState,如果你想节省一些状态信息,您的活动被摧毁之前,然后onRestoreInstanceState进行检索。

您还可以使用getRequestedOrientation()中的onCreate获得新的方向。

您也可以在使用的onCreate这个()

Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay(); 
int orientation = display.getOrientation(); 

Activity类有一个特殊的 方法称为 onRetainNonConfigurationInstance()。 这种方法可以用来传递一个 任意对象的未来的自己和 Android是足够聪明的调用仅在需要时该 方法。

了解更多here

+0

链接已经404 – 2014-01-17 23:46:01

+0

感谢抬头 – 2014-01-21 08:19:15