在活动之间切换时显示白屏

时间:2015-10-16 04:18:18

标签: android android-intent android-activity android-studio start-activity

当我从一个活动移动到另一个活动时,将显示白色屏幕2秒钟。我正在使用此代码:

Intent intent = new Intent(this, SecondActivity.class);
startActivity(intent);

如何解决此问题?

9 个答案:

答案 0 :(得分:19)

创建一个这样的主题:

<style name="YourTheme" parent="YourParentTheme">
    <item name="android:windowDisablePreview">true</item>
</style>

将此主题应用于您的第二个活动

此链接中的更多详细信息:http://www.tothenew.com/blog/disabling-the-preview-or-start-window-in-android/

答案 1 :(得分:2)

如果您的活动包含更复杂的布局,请在设置标志后不要使用finish()。请改用FLAG_ACTIVITY_CLEAR_TOP and _TASK来解决您的问题。这对我来说非常有用

Intent intent = new Intent(this, SecondActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.l̥FLAG_ACTIVITY_CLEAR_TOP ); startActivity(intent);

或使用如下

Intent intent = new Intent(this, SecondActivity.class); startActivity(intent);

答案 2 :(得分:2)

从ActivityOne切换到ActivityTwo时,直到ActivityTwo onCreate方法被执行,显示默认背景,即白/黑屏幕。良好的做法是不要在onCreate上做大量的操作。要解决问题,请将透明背景设置为ActivityTwo,如下所示。

<style name="YourTheme" parent="YourParentTheme">
<item name="android:windowBackground">@android:color/transparent</item>
</style>

在Manifest中设置上面的主题

<activity
            android:name=".ActivityTwo"
            android:theme="@style/YourTheme">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
</activity>

答案 3 :(得分:1)

在致电intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

之前尝试添加startActivity(intent);
Intent intent = new Intent(this, SecondActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

答案 4 :(得分:1)

如果您的活动包含更复杂的布局/包含大尺寸背景图像,则需要渲染,因此只显示该白页。如果要删除该时间延迟,请使用低尺寸的png图像并清除布局设计。

答案 5 :(得分:1)

使用 FLAG_ACTIVITY_NEW_TASK ,您将获得白屏,请将其删除,就像使用它一样。它会起作用。

Intent intent = new Intent(this, SecondActivity.class);
startActivity(intent);

答案 6 :(得分:0)

转到下一个活动使用标志

Intent intent = new Intent(this, SecondActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

答案 7 :(得分:0)

尝试添加intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)

答案 8 :(得分:0)

使用x如果要清除活动意味着当您按下时则没有活动堆栈。

所以你要清除然后使用finish,否则不要使用它。