activity跳转间会出现短暂黑屏,此时可能会出现以下三张情况。
1.activity页面加载数据过多,导致的短暂黑屏现象;
2.PopupWindow控件引起的短暂黑屏现象;
3.跳转或被跳转的avtivity启动模式为launchMode==“singleInstance”;
解决办法:
情况1或者3:
在your_project/res/values/styles.xml中加入自定义Activity的Theme,然后引入你的Activity中:
<!-- Activity主题 -->
<style name="activityTheme" parent="@android:style/Theme">
<item name="android:windowIsTranslucent">true</item> //此句是重点
</style>
这样在跳转加载页面时,会先加载透明页,等数据加载出来后,才显示页面,解决黑屏为题,也可以不设置透明,而是加载透明的背景页,两者比较前者给用户的感觉慢了一点,后者则很快。
情况2:
在你所有设置了透明度的地方,调用下面这个方法,即可。
/** * 设置之后,防止activity跳转间出现黑屏问题 * * @param bgAlpha */ public void backgroundAlpha(float bgAlpha) { WindowManager.LayoutParams lp = getWindow().getAttributes(); lp.alpha = bgAlpha; if (bgAlpha == 1) { getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);//不移除该Flag的话,可能出现黑屏的bug } else { getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);//此行代码主要是解决在华为手机上半透明效果无效的bug } getWindow().setAttributes(lp); }