【发布时间】:2013-09-12 06:57:57
【问题描述】:
我目前对如何仅在应用程序第一次仅通过方向更改加载时才显示我的对话框感到困惑。我只有一项由选项卡组成的活动。
问题:
我尝试使用boolean 变量和preferences,但我不知道在活动视图被破坏的情况下将它们放置在哪里。销毁是通过退出应用程序或方向更改。其次,在方向更改期间,对话框应在第一次再次显示,但即使我 dismiss 对话框和 do 方向更改 - 对话框会再次显示,这不应该发生.我不喜欢使用onConfigurationChanged(Configuration)。
boolean FirstTimeActivityOpened = true;
boolean dialogDismissed = false;
boolean orientationChanged = false;
++++++++++
if(FirstTimeActivityOpened && dialogDismissed && orientationChanged ){
loadDialog(this);
}
new OrientationEventListener(MainActivity.this,
SensorManager.SENSOR_DELAY_NORMAL){
@Override
public void onOrientationChanged(int orientation) {
// TODO Auto-generated method stub
orientationChanged = true;
//Toast.makeText(MainActivity.this, "onOrientationChanged"+ orientation, Toast.LENGTH_SHORT).show();
}};
加载对话框
dialog.setOnDismissListener(new OnDismissListener(){
@Override
public void onDismiss(DialogInterface arg0) {
// TODO Auto-generated method stub
dialogDismissed = true;
Toast.makeText(MainActivity.this, "Dialog Dismissed", Toast.LENGTH_SHORT).show();
}});
+++++++++++++++
@Override
public void onDestroy() {
super.onDestroy();
if(dialog != null && dialog.isShowing()) {
dialog.dismiss();
}
//or
if(dialog != null) {
dialog.dismiss();
}
}
我在学习期间发现:
首次加载:
onCreate()
onStart()
onResume()
改变或方向:
onPause()
onStop()
onDestroy()
onCreate()
onStart()
onRestoreInstantState()
onResume()
Activity 不可见但未销毁
onPause()
onStop()
Activity 从暂停状态打开:
onRestart()
onStart()
onResume()
Activity 不可见并被破坏:
onPause()
onStop()
onDestroy()
Activity 被销毁并重新打开
onCreate()
onStart()
【问题讨论】:
标签: java android android-dialog