在 API 11 之前有效的一种方法是先启动ActivityGameMain
,然后在该onCreate
Activity 中启动您的ActivitySplashScreen
Activity。当ActivityGameMain
您为启动太早调用 startActivity 时,不会出现。
然后,您可以在启动时ActivityGameMain
通过在 Intent 上设置这些标志来清除堆栈:
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
您还必须将其添加到 ActivitySplashScreen:
@Override
public void onBackPressed() {
moveTaskToBack(true);
}
因此,按下该活动不会回到您的ActivityGameMain
.
我假设您不希望启动画面返回到任何一个,为了实现这一点,我建议将其设置为noHistory
您的AndroidManifest.xml
. 然后将goBackPressed
代码放在您的ActivitySplashScreenSignUp
班级中。
但是我找到了一些方法来打破这个。显示时从通知启动另一个应用程序ActivitySplashScreenSignUp
并且不重置返回历史记录。
解决这个问题的唯一真正方法是在 API 11 中:
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);