Android - 活动重新加载轮换

时间:2011-05-11 06:50:47

标签: android android-layout

我知道这是一个重复的问题,我知道当旋转设备时,会再次调用OnCreate方法,我想保持这样;我不想完成重写onConfigurationChanged或对我的Application类进行子类化的步骤,因为android正在以最佳方式进行重新加载(特别是在保存当前值和状态时)。

但是,我在OnCreate方法中有一些命令,如果由于Rotation重新加载Activity,我不想执行它们,所以是否有任何属性/方法可以判断OnCreate是否因第一个Application启动而被触发或者由于方向改变?

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

或者,我们是否在OnCreate之前或OnConfigurationChanged之前触发Android中的任何事件?

3 个答案:

答案 0 :(得分:0)

为什么不将当前方向存储在SharedPreferences中,并将当前方向与onCreate中的存储值进行比较(然后将新方向保存到SharedPreferences)?

这应该提供您需要的功能,除非我误解了某些内容。

答案 1 :(得分:0)

尝试使用onSaveInstanceState,如果要在活动被销毁之前保存一些状态信息,然后使用onRestoreInstanceState来检索它。

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

您也可以在onCreate()

中使用它
Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay();
int orientation = display.getOrientation();

答案 2 :(得分:0)

  

Activity类有一个特殊的   方法叫做   onRetainNonConfigurationInstance()。   这个方法可以用来传递一个   任意对象你未来的自我和   Android很聪明,可以称之为   方法仅在需要时使用。

了解更多here