当使用FLAG_ACTIVITY_NEW_TASK和FLAG_ACTIVITY_CLEAR_TASK设置Intent时,App临时变为白色

时间:2016-01-02 12:26:58

标签: android android-layout android-intent android-transitions

Intent intent = new Intent(LoginActivity.this, Profile.class);

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);

startActivity(intent);

overridePendingTransition(R.anim.pull_in_right, R.anim.push_out_left);

我正在使用此标志在登录后清除所有活动堆栈。问题是,由于屏幕瞬间变为白色,转换变得非常难看。有什么办法可以避免这种情况吗?

P.S。:两项活动都以RED Color为背景。我想知道白色的来源。

2 个答案:

答案 0 :(得分:10)

在您的应用主题中添加以下行,在片段或活动加载之前禁用Windows预览。(白屏问题

<item name="android:windowDisablePreview">true</item>

请参阅here

答案 1 :(得分:0)

styles.xml文件中添加以下行:

<style name="AppTheme" parent="Theme.AppCompat">
    <item name="android:windowDisablePreview">true</item>
...
</style>

它将禁用新加载的屏幕(又名白/黑屏幕)的预览模式。

如果要在加载新屏幕之前使用自定义背景,请考虑添加以下行:

<style name="AppTheme" parent="Theme.AppCompat">
    <item name="android:windowBackground">@drawable/slash_screen</item>
...
</style>