关于Android如何禁止屏幕旋转刷新界面
16lz
2021-01-24
Android旋转屏幕属于老生常谈的问题,熟悉Activity生命周期的人肯定清楚当屏幕旋转时生命周期变化为:
onPause–>onStop–>onDestroy–>onCreate–>onStart–>onResume
这里需要强调一点是旋转屏幕时调用onDestroy方法,这相当于将当前Activity销毁了而后又重新创建Activity。这就引起了很多的问题如当前Activity的数据以及状态丢失的情况。在先前Google给出了解决方案即提供了onSaveInstanceState(Bundle)
方法,通过Bundle来保存当前Activity的状态。但是这种方法仍不是最简单的方法,后来Google又提供了通过修改配置文件的方式来禁止旋转屏幕Activity状态丢失的方法即在Activity的配置文件中添加如下的配置。
android:configChanges="keyboardHidden|orientation|screenSize"
这样就很有效的防止了屏幕旋转造成Activity刷新丢失状态,可以说这是很简单且有效的方式。但是这里要强调一点的是这种方法并不会一劳永逸的对于那些加载过多第三方数据的Activity如此可能造成数据加载不完的情况。所以最保险的还是重写onSaveInstanceState方法在这里保存Activity状态。
更多相关文章
- Android(安卓)PowerManagerService分析
- 获取Google Maps API 指纹证书时获取的是SHA1型的,而认证时需要的
- Android四大组件之 BroadcastReceiver
- android中BroadCastReceiver使用(广播的接受和发送)
- android 透明状态栏与沉浸式
- Android(安卓)Camera数据流分析全程记录(非overlay方式)
- Android技术周报190310期 —— onSaveInstanceState到底做了些什
- Android中MPAndroidChart自定义绘制最高点标识的方法
- 理解 Java 的 GC 与 幽灵引用