当我从一个活动移动到另一个活动时,将显示白色屏幕2秒钟。我正在使用此代码:
Intent intent = new Intent(this, SecondActivity.class);
startActivity(intent);
如何解决此问题?
答案 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
,否则不要使用它。