在API 11之前运行的一种方法是先启动ActivityGameMain,然后在该onCreateActivity的其中启动您的ActivitySplashScreen活动。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);