android中方向改变时的活动重新加载
我开发了一个应用程序,它包含web视图 我的问题 当我的手机从纵向转向横向时,整个应用程序将再次加载,web视图将重新加载,显示网站的第一页android中方向改变时的活动重新加载,android,webview,android-activity,reload,Android,Webview,Android Activity,Reload,我开发了一个应用程序,它包含web视图 我的问题 当我的手机从纵向转向横向时,整个应用程序将再次加载,web视图将重新加载,显示网站的第一页 因此,我对该阶段中的屏幕方向或保存数据感到困惑,因此我如何修复它…默认行为是在发生配置更改(例如方向更改)时重新启动活动 要覆盖此项,您需要告诉系统您将自己处理方向更改,方法是将此项添加到中的清单文件中,当发生此类更改时,将调用该清单文件 请参见是,在Android中,当您更改屏幕方向时,活动将被销毁并重新创建。因此,您需要在重新创建时恢复应用程序状态。另
因此,我对该阶段中的屏幕方向或保存数据感到困惑,因此我如何修复它…默认行为是在发生配置更改(例如方向更改)时重新启动活动 要覆盖此项,您需要告诉系统您将自己处理方向更改,方法是将此项添加到
中的清单文件中,当发生此类更改时,将调用该清单文件
请参见是,在Android中,当您更改屏幕方向时,活动将被销毁并重新创建。因此,您需要在重新创建时恢复应用程序状态。另一种方法是使用回调方法onSaveInstanceState()
,您可以使用该方法将状态保存在包中
这里对这些活动进行了解释:我建议您在该页面上查看示例和更详细的说明 Android活动生命周期清楚地表明了这种行为
发生了什么
每当启动activity时(在onStart()方法之后)都会创建
onCreate(Bundle onSavedInstance)
上述变量onSavedInstance最初接收null,因为未保存任何内容。
但在定向过程中,整个布局层次结构必须根据现有模式的新模式进行调整(从纵向->横向,反之亦然)。此更改可能会删除活动中以前的数据。因此,为了避免此类问题(丢失数据),有一种方法
onConfigurationChange(Bundle saveSomething)
您将调用此方法来处理对此的一些配置更改,
默认实现将保存一些数据,如editText中的一些文本
注意就规格而言,此方法应用于保存一些琐碎的数据
示例
假设您已将背景颜色应用于activty布局,现在将其旋转,默认实现不会保存它,但如果需要,可以按如下方式保存它
saveSomething.putInt("color",1);
Inside onCreate
protected void onCreate(Bundle onSavedInstance){
if(onSavedInstance!=null){
int color=onSavedInstance.getInt("color");
if(color==1){
setBackgroundColor(Color.BLACK);
}
}
}
在清单文件的活动元素中添加以下行,您将处理配置中的更改
android:configChanges="keyboardHidden|orientation|screenSize"
您是否尝试在活动中覆盖onConfigurationChanged
?确定onConfigurationChanged覆盖然后您可以将其保留为空。在configChanges属性中添加keyboardHidden | screenSize
怎么样?
android:configChanges="keyboardHidden|orientation|screenSize"