当Orientation改变时调用Onstop方法

时间:2011-05-11 08:02:29

标签: android

当我更改Android应用程序的方向时,它会调用onStop方法然后调用onCreate。如何避免在方向改变时调用onStop和onCreate?

3 个答案:

答案 0 :(得分:6)

这个问题一直很活跃,但我很需要回答这个问题。我有同样的问题并找到答案。

在清单中,您应在活动中添加android:configChanges=orientation|screenLayout|layoutDirection,该活动不应在方向更改时调用默认操作。

...
<activity android:name=".Activity"
  android:screenOrientation="portrait"
  android:configChanges="orientation|screenLayout|layoutDirection|screenSize" 
...


在你的活动中:

@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
    // This overrides default action
}



原例:
http://android-er.blogspot.fi/2011/05/prevent-activity-restart-when-screen.html

答案 1 :(得分:2)

这是默认行为:当方向更改时,将重新创建活动。但您可以决定忽略此事件。您可以在此处找到详细信息:How to make an application ignore screen orientation change?

答案 2 :(得分:0)

你无法避免,那些是系统回调。 您可以在onStop中保存状态,然后让系统将其传递给onCreate,以便在屏幕方向更改后更快地恢复状态。

另请参阅开发人员页面上的thisthat文章。