Android 当活动重新启动时,对话框被取消

Android 当活动重新启动时,对话框被取消,android,android-activity,Android,Android Activity,当我在显示对话框时旋转设备时,我的活动将被重新创建,对话框将被取消。每次用户旋转设备时是否需要再次显示该对话框?旋转设备时,您的活动将重新启动。您可以通过将其添加到清单中的应用程序部分来停止此操作: android:configChanges="orientation|keyboardHidden" 旋转设备时,活动将重新启动。您可以通过将其添加到清单中的应用程序部分来停止此操作: android:configChanges="orientation|keyboardHidden" 弗拉维奥

当我在显示对话框时旋转设备时,我的活动将被重新创建,对话框将被取消。每次用户旋转设备时是否需要再次显示该对话框?

旋转设备时,您的活动将重新启动。您可以通过将其添加到清单中的应用程序部分来停止此操作:

android:configChanges="orientation|keyboardHidden"

旋转设备时,活动将重新启动。您可以通过将其添加到清单中的应用程序部分来停止此操作:

android:configChanges="orientation|keyboardHidden"
弗拉维奥

通过在AndroidManifest.xml中添加以下内容,可以防止在方向更改时重新创建活动:

然后需要在代码中重写以下方法:

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
}
弗拉维奥

通过在AndroidManifest.xml中添加以下内容,可以防止在方向更改时重新创建活动:

然后需要在代码中重写以下方法:

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
}

弗拉维奥:我无法在方向更改时使用alertDialogs或自定义对话框重新创建有问题的行为。您是否使用onCreateDialog和showDialog(int-id)?根据文档“如果使用showDialog,对话框将自动保存和恢复。这是我的经验

甚至可以使用editText小部件创建XML布局,膨胀布局,并且editText中的状态将在方向更改时自动保存

AlertDialog.Builder builder= new AlertDialog.Builder(this);
LayoutInflater inflater= getLayoutInflater();
final View myView= inflater.inflate(R.layout.alert_dialog_text_entry, null);
builder.setTitle("About");
builder.setMessage(alertMessage+"Version: "+versionName);
builder.setView(myView);
AlertDialog alert= builder.create();

我有代码和屏幕截图,可以演示方向更改时alertDialog和自定义对话框的持久性

Flavio:我无法使用方向更改时的alertDialogs或自定义对话框重新创建有问题的行为。您是否使用onCreateDialog和showDialog(int id)?根据文档“如果使用showDialog,该对话框将自动保存和恢复。这是我的经验

甚至可以使用editText小部件创建XML布局,膨胀布局,并且editText中的状态将在方向更改时自动保存

AlertDialog.Builder builder= new AlertDialog.Builder(this);
LayoutInflater inflater= getLayoutInflater();
final View myView= inflater.inflate(R.layout.alert_dialog_text_entry, null);
builder.setTitle("About");
builder.setMessage(alertMessage+"Version: "+versionName);
builder.setView(myView);
AlertDialog alert= builder.create();

我有代码和屏幕截图,演示了alertDialog和自定义对话框在方向更改时的持久性

如果我的活动以某种方式进入后台(例如单击主页)并被操作系统杀死,该怎么办?我希望在用户返回时显示对话框。您应该使用应用程序生命周期的各种功能(onPause、onDestroy等)设置一个布尔值,当调用onReturn等时,检查此布尔值并重新启动对话框。这是我考虑过的解决方案,但我不太喜欢它。我认为Android有更好的方法来处理这个问题。嗯,这是一个很好的方法。您有一个特定的状态,您希望保存该状态,并在重新开始时返回该状态。这对开发人员来说是额外的工作,但对用户来说意味着很多好事情。如果我的活动以某种方式进入后台(例如,单击home)并被操作系统杀死,该怎么办?我希望在用户返回时显示对话框。您应该使用应用程序生命周期的各种功能(onPause、onDestroy等)设置一个布尔值,当调用onReturn等时,检查此布尔值并重新启动对话框。这是我考虑过的解决方案,但我不太喜欢它。我认为Android有更好的方法来处理这个问题。嗯,这是一个很好的方法。您有一个特定的状态,您希望保存该状态,并在重新开始时返回该状态。这对开发者来说是额外的工作,但对用户来说意味着很多好事情。