美文网首页
记一次转屏导致的Android生命周期问题

记一次转屏导致的Android生命周期问题

作者: 天神Deity | 来源:发表于2018-09-19 14:04 被阅读5次

该MainActivity的配置如下,由于我希望该MainActivity在运行过程中只会创建一个实例,因此我限制了它的启动模式为singleTask.运行的Android系统版本为KitKat(4.4.4)

<activity
  android:name=".MainActivity"
  android:configChanges="orientation|keyboardHidden"
  android:launchMode="singleTask"
  android:theme="@style/Theme.AppCompat.Light.NoActionBar" />
未知原因导致的转屏

要使Android4.0以上的版本在转屏后不重新执行Activity的生命周期,原

android:configChanges="orientation|keyboardHidden"

需要修改为

android:configChanges="orientation|keyboardHidden|screenSize"
修正android:configChanges

当然这样做也有副作用,那就是转屏后,界面无法发生重绘.因此建议在xml中就锁定页面的横竖屏模式.

android:screenOrientation="landscape|portrait"

另未证实的:
在比较高的版本还需要设置捕捉更改的权限—— Android.permission.CHANGE_CONFIGURATION

你可以通过以下ADB命令来实现转屏以方便测试
adb shell content insert --uri content://settings/system --bind name:s:user_rotation --bind value:i:1
其中i可以取值为 0,1,2,3 分别代表不同的方向

链接
关于onConfigurationChanged以及onConfigurationChanged 未被调用的问题

相关文章

网友评论

      本文标题:记一次转屏导致的Android生命周期问题

      本文链接:https://www.haomeiwen.com/subject/fbhinftx.html