当我从一个 Activity 移动到另一个 Activity 时,白屏显示 2 秒。我正在使用这段代码:
Intent intent = new Intent(this, SecondActivity.class);
startActivity(intent);
我该如何解决这个问题?
像这样创建一个主题:
<style name="YourTheme" parent="YourParentTheme">
<item name="android:windowDisablePreview">true</item>
</style>
将此主题应用于您的第二个活动
如果您的活动包含更复杂的布局,请不要在设置标志后使用
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);
从 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>
尝试在调用
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);
尝试添加
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
如果您的活动包含更复杂的布局/包含需要渲染的大尺寸背景图像,因此只显示该白页。如果您想消除该时间延迟,请使用小尺寸 png 图像和清晰的布局设计。
去下一个活动使用标志
Intent intent = new Intent(this, SecondActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
使用
finish
如果你想清除活动意味着当你按下回来时没有活动堆栈。
所以你想清除然后使用
finish
否则不要使用它。
通过使用FLAG_ACTIVITY_NEW_TASK你会得到白屏,像使用这个一样删除它。它会起作用。
Intent intent = new Intent(this, SecondActivity.class);
startActivity(intent);