问题分析:折叠态和展开态切换,应用如果没有设置不重启,默认系统会触发应用的Activity重走生命周期:
•如果应用重启之前没有在Activity的onSaveInstanceState()方法中保存应用页面的状态数据,就会导致应用出现重启的问题;
•如果应用在onDestroy()中调用finish()或其他自行终止进程方法。这将导致应用程序在设备折叠或展开时出现关闭、闪退等问题
修改建议:
•不重启适配方式:
在AndroidManifest文件中增加设置:
<activity
android:name='.MainActivity'
android:configChanges='screenSize|smallestScreenSize|screenLayout'>
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
initView();//动态调整布局
}
重写onConfigurationChanged() 方法,通过该方法的Configuration参数获得屏幕的分辨率等信息,就可以针对不同比例屏幕下的应用界面布局做相应调整,如切换布局、调整控件位置和间距等,如果不动态调整就会出现后面的问题
•重启方式:需要进行状态的保存和恢复。
在销毁activity之前,通过onSaveInstancesState()存储状态,在onCreate()或者是onRestoreInstanceState()进行状态的恢复。
Note:不要在OnDestroy()中调用finish()或其他自行终止进程。这将导致应用程序在设备折叠或展开时关闭、闪退等问题。







































苏公安网备 32011402010933号