我在应用程序中有启动画面。当用户在主屏幕并按下返回按钮时;带有“您要退出吗?”的警报对话框 出现,如果用户选择 OK 然后moveTaskToBack(true);
被调用:并且应用程序将退出。但是在立即启动应用程序时,不会显示启动画面。如何在每次启动应用程序时显示启动画面?
4 回答
理想情况下你不应该那样做。你应该尊重用户对应用程序行为的期望。当他点击你的应用程序时,它应该从他离开的地方开始。如果应用程序由于内存限制而被终止,那么它将重新启动 .
如果你想这样做:来源:关闭应用程序并在 Android 上启动主屏幕
Intent intent = new Intent(this, FinActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
FinActivity 内部:在 onCreate 中调用 finish()。
关于如何制作启动画面的一些提示。
假设我们有SplashActivity
和HomeActivity
。
SplashActivity
应该是您的启动器活动(在清单中)。
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
当您开始时,HomeActivity
您应该调用finish()
,SplashActivity
这样您就不会在单击后退按钮时返回它。
在HomeActivity
您拦截后退按钮以显示对话框时,不要调用moveTaskToBack(true);
OK,因为这只会将您的应用程序移动到后台并且不会终止它。
你应该打电话finish()
。而且由于您已经调用了 finish on SplashActivity
,剩下的唯一活动是HomeActivity
,因此您的应用程序将关闭。
我认为您 SplashScreen 仅在应用程序启动时显示。
因此,如果 Acitivites 未完成但只是暂停,则不会显示 SplashScreen,因为该应用程序并未真正关闭。
您可以在按下后退按钮时完成应用程序(代码:),或者如果应用程序处于后台,则this.finish()
检查每个 Activity 的onResume()
-Method,如果为 true,则显示 SplashScreen。