代码改变世界

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

2016-06-14 21:35  shaobin0604  阅读(1387)  评论(0编辑  收藏  举报

如何复现

连续启动两个 Activity ,其中

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

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

Android 4.x ~ 5.x 效果

Android 6.x 效果

产生原因

确认是 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
    }
});

参考