转载:创建当方向改变时仍然可以使用的警告对话框

转载自:www.madhome.org

让我们举个例子,我们现在有一个Game class,需要在我们旋转屏幕的时候,有一个持久的警告对话框。
首先,我们需要为我们的应用程序里的Game activity添加合适的XML属性,显示如下:

XML:

<activity android:name=".Game"
        android:launchMode="singleTask"
        android:configChanges="orientation|keyboardHidden"/>

 

如果我们没有“android:configChanges="orientation|keyboardHidden"”这一行,会出现如下错误:
E/WindowManager( 875): android.view.WindowLeaked: Activity com.domain.tester3.Engine.Game has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@437592e0 that was originally added here
除此以外的所有其他的错误种类取决于你的代码。下一步我们要确保super.onSaveInstanceState() 被呼叫

Java:

@Override
     
protected void onSaveInstanceState(Bundle savedInstanceState){
          
super.onSaveInstanceState(savedInstanceState);
          Log.
d(TAG,"onSaveInstanceState");
     
}

 

因为使用android:configChanges="orientation|keyboardHidden" 会绕开onDestroy onCreate, 你需要通过呼叫onConfigurationChanged()再一次更新你的活动格式(activity layout

Java:

@Override
     
public void onConfigurationChanged(Configuration newConfig) {
          
super.onConfigurationChanged(newConfig);
          Log.
d(TAG, "onConfigurationChanged");
          setContentView
(R.layout.gamelayout);
                           
// you are other code here
     
}

现在,你就可以创建一个在方向改变的情况下也能够跳出的警告对话框啦。

posted @ 2010-01-18 17:51  jonecard  阅读(372)  评论(0)    收藏  举报