Android 8.0 透明Activity 竖屏切换横屏 崩溃


当使用透明 Activity 进行横竖屏切换时,在Android 8.0(API 级别 26)及更高版本上可能会导致崩溃,特别是当使用 WindowManager.LayoutParams.FLAG_SECURE 标志设置为 FLAG_SECURE 时。这是因为Android 8.0引入了更严格的安全性策略,导致在某些情况下横竖屏切换时可能会发生问题。

一种可能的解决方法是在透明 Activity 的清单文件(AndroidManifest.xml)中添加如下属性:

<activity
    android:name=".YourTransparentActivity"
    android:theme="@android:style/Theme.Translucent"
    android:configChanges="orientation|screenSize">
</activity>

在这个配置中,configChanges 属性指示系统在配置更改时不销毁 Activity,而是调用 onConfigurationChanged 方法,从而可能避免崩溃。

请注意,使用这种方法可能会引入一些潜在的问题,特别是处理屏幕旋转的自定义逻辑。确保测试你的应用程序在各种设备上和不同的横竖屏切换情况下的稳定性。