文档开发者中心
我的

MateX折叠屏适配 | 典型问题二:折叠态和展开态动态切换应用闪退和重启问题

问题分析:折叠态和展开态切换,应用如果没有设置不重启,默认系统会触发应用的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()或其他自行终止进程。这将导致应用程序在设备折叠或展开时关闭、闪退等问题。


点赞
5
收藏
4
回复
5
分享
举报
浏览7488 编辑于2019-07-26 09:58未知归属地
全部评论
最多点赞
最新发布
最早发布
学习了
4楼回复于2022-12-24 05:05 来自广东
学习
3楼回复于2022-12-04 04:54 来自广东

请问这个不重启方式需要每个activity都配置上面的属性值,还是只需要配置MainActivity?

2楼回复于2021-08-25 01:38 未知归属地

赞赞赞!!!

1楼回复于2019-07-26 10:11 未知归属地
学习
5楼回复于2023-06-09 02:24 来自陕西
写回答
新增插入模板功能
一键使用模板,快速填写内容,轻松发帖~
知道了
  • 为了保障您的信息安全,请勿上传您的敏感个人信息(如您的密码等信息)和您的敏感资产信息(如关键源代码、签名私钥、调试安装包、业务日志等信息),且您需自行承担由此产生的信息泄露等安全风险。
  • 如您发布的内容为转载内容,请注明内容来源。

我要发帖子

了解社区公约,与您携手共创和谐专业的开发者社区。