如何在android中保持活动状态

如何在android中保持活动状态,android,Android,如何在android中保留活动的状态?我有两个布局的纵向和横向布局在布局和布局土地。在显示进度对话框时,我正在从服务加载值。如果已加载,则用户在加载时将设备旋转到横向。我如何避免这种情况?用户在webview中键入的内容也已刷新。我如何避免这种情况,有人能举个例子吗 谢谢当方向改变时,默认情况下会重新加载活动。如果不希望出现此行为,请将其添加到清单中的活动定义中: android:configChanges=“方向|键盘隐藏” 有关详细信息,请参见您可以使用onretainonconfigura

如何在android中保留活动的状态?我有两个布局的纵向和横向布局在布局和布局土地。在显示进度对话框时,我正在从服务加载值。如果已加载,则用户在加载时将设备旋转到横向。我如何避免这种情况?用户在webview中键入的内容也已刷新。我如何避免这种情况,有人能举个例子吗


谢谢

当方向改变时,默认情况下会重新加载活动。如果不希望出现此行为,请将其添加到清单中的活动定义中:

android:configChanges=“方向|键盘隐藏”


有关详细信息,请参见您可以使用
onretainonconfigurationchange()
回调来存储任意数据。它是在即将重新创建应用程序之前调用的

然后,在
onCreate()
中,只需通过调用
getLastNonConfigurationInstance()
来检查是否搁置了一些数据,该函数返回您搁置的对象或null

请参阅关于android开发者的文章

以下是从上述链接中借用的示例:

@Override
public Object onRetainNonConfigurationInstance() {
    //this is called by the framework when needed
    //Just return what you want to save here.

    return MyBigObjectThatContainsEverythingIWantToSave;
}
以前保存状态的自动逻辑恢复:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    final MyDataObject MyBigObjectThatContainsEverythingIWantToSave = (MyDataObject) getLastNonConfigurationInstance();
    if (MyBigObjectThatContainsEverythingIWantToSave == null) {
        //No saved state
        MyBigObjectThatContainsEverythingIWantToSave = loadMyData();
    } else {
        //State was restored, no need to download again.
    }
    ...
}

当方向更改时,默认情况下会重新加载活动。如果不希望出现这种行为,请将其添加到android清单文件中的活动定义中:


android:configChanges=“orientation | screenSize | keyboardHidden”

@Laurent我必须保存很多像textview这样的对象webview如何保存你能举个例子吗谢谢