我目前对如何仅在应用程序第一次仅在方向更改时加载时如何显示我的对话框感到困惑。我只有一项由选项卡组成的活动。
问题:
我尝试使用boolean
变量,preferences
但我不知道在活动视图被破坏的情况下将它们放置在哪里。销毁是通过退出应用程序或方向更改。其次,在方向更改期间,应在第一次再次显示对话框,但即使我关闭对话框并更改方向 - 对话框会再次显示,这不应该发生。我宁愿不使用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()
活动不可见但未销毁
onPause()
onStop()
从暂停状态打开的活动:
onRestart()
onStart()
onResume()
活动不可见并被破坏:
onPause()
onStop()
onDestroy()
活动被销毁并重新打开
onCreate()
onStart()