在上一篇中我们讲到了Android启动是SplashActivity
的黑屏问题,需要在theme中设置windowBackground
来消除,但是在Activity的切换中也会出现黑屏问题,比如我们在退出登录时需要跳转到登录界面,这是为了清除栈中的其他Activity,需要如下代码:
Intent intent = new Intent(this, LoginActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
this.startActivity(intent);
this.finish();
由于设置了两个Flag
,所以会导致启动LoginActivity
有黑屏,想要消除黑屏做法可以在theme
中添加如下代码:
<style name="AppTheme" parent="Theme.AppCompat">
<item name="android:windowDisablePreview">true</item>
...
</style>
然后设置给你的Application
即可。
参考http://stackoverflow.com/questions/29015885/how-to-avoid-black-screen-on-startactivity-when-flag-activity-clear-task-is-set/31781556#31781556