我在应用程序中有启动画面。当用户在主屏幕并按下后退按钮时;一个警告对话框,其中包含“您要退出吗?”出现了,如果用户睡觉好,则调用moveTaskToBack(true);
:应用程序将退出。但是,在立即启动应用程序时,不会显示启动画面。如何在每次启动应用程序时显示启动画面?
答案 0 :(得分:4)
关于如何制作闪屏的几点建议。
说我们有SplashActivity
和HomeActivity
。
SplashActivity
应该是您的启动器活动(在清单中)。
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
当您开始HomeActivity
时,您应该在finish()
上致电SplashActivity
,以便在点击后退按钮时不会返回。{/ p>
在HomeActivity
中,当您截取后退按钮以显示对话框时,请不要将moveTaskToBack(true);
调用为OK,因为这只会将您的应用程序移至后台并且不会终止它。
您应该致电finish()
。由于您已在SplashActivity
上调用完成,因此剩下的唯一活动是HomeActivity
,因此您的应用将关闭。
答案 1 :(得分:4)
理想情况下你不应该这样做。你应该尊重用户对app行为的期望。当他点击你的应用时,它应该从他离开的地方开始。如果应用程序因内存限制而被终止,那么它将重新开始。
如果你想这样做:来源:Close application and launch home screen on Android
Intent intent = new Intent(this, FinActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
内部FinActivity: 在onCreate中调用finish()。
答案 2 :(得分:1)
我认为您的SplashScreen仅在应用程序启动时显示
因此,如果Acitivites没有完成但只是暂停,SplashScreen将不会显示,因为应用程序并未真正关闭。
您可以在按下后退按钮时完成应用程序(代码:this.finish()
)或检查每个活动的onResume()
- 如果应用程序处于后台,则显示方法,如果为真,则显示SplashScreen。
答案 3 :(得分:0)
我觉得启动应用程序所需的启动屏幕的唯一原因是,如果你想通过一个线程加载一些信息,这只是我的意见。
无论如何,您应该将启动画面作为清单中的第一个活动启动,然后启动一个启动下一个活动的意图?(实际的主要活动)。几个月前,当我第一次处理这些时,有一个很棒的教程,它与你一步一步地完成它。 我希望这会有所帮助:)