[Bug] 解决透明 Activity 在 Android 6.0 背景不透明

时间:2022-07-15 22:51:57

如何复现

连续启动两个 Activity ,其中

  • Activity 1 为 不透明 的 Activity
  • Activity 2 为 透明 的 Activity

通常用于引导页面,例如:豌豆夹锁屏引导用户开启 辅助功能

Android 4.x ~ 5.x 效果

[Bug] 解决透明 Activity 在 Android 6.0 背景不透明

Android 6.x 效果

[Bug] 解决透明 Activity 在 Android 6.0 背景不透明

产生原因

确认是 Android 6.0 的 Bug Issue 187887,该 Bug 只会在连续启动两个 Activity 时出现。

解决方案

在 Google 解决该 bug 之前,临时的解决方案

startActivity(firstActivityIntent); // 位于底部的非透明 Activity
Handler handler = new Handler(Looper.getMainLooper());
handler.post(new Runnable() {
@Override
public void run() {
startActivity(secondActivityIntent); // 盖在非透明 Activity 之上的透明 Activity
}
});

参考