2012-09-19 91 views
0

我在应用程序中启动了闪屏。当用户在家时屏幕并按下后退按钮;一个警告对话框“你想退出吗?”出现,如果用户行事确定,然后moveTaskToBack(true);被称为:和应用程序将退出。但在即时启动应用程序时,不会显示启动画面。如何在每次启动应用程序时显示启动画面?每次启动Android应用程序时显示启动画面

+1

请上传你的代码 – Lucifer

+1

点击ok就把'finish();' –

+0

SplashScreen!真...?不是一个好主意:) – waqaslam

回答

4

关于如何制作启动画面的几点提示。我们有SplashActivityHomeActivity

SplashActivity应该是您的启动器活动(在清单中)。

<intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 

     <category android:name="android.intent.category.LAUNCHER" /> 
</intent-filter> 

当你开始HomeActivity你应该SplashActivity调用finish(),这样你就不会在单击后退按钮返回。

HomeActivity当您拦截后退按钮以显示对话框时,请勿在OK上调用moveTaskToBack(true);,因为这只会将您的应用程序移动到后台并且不会终止它。

您应该改用finish()。由于您已在SplashActivity上致电完成,因此剩下的唯一活动是HomeActivity,因此您的应用程序将关闭。

+0

问题在于,用户可以在应用程序运行中多次访问主屏幕,因此如果主屏幕是从其他活动访问并调用finish(),则应用程序不会退出并显示其他最后一个活动。 –

+0

您可以通过[清除backstack](http://stackoverflow.com/a/5794572/1117415)从其他活动启动“HomeActivity”来解决此问题。 –

+0

我的应用程序就像Splash> Home> ...其他活动。我叫moveTaskToBack(true);从家里。当我从设备中的应用程序启动器重新启动应用程序时,Splash不显示,它直接进入主页。那么如何在这种情况下显示Splash? –

1

我认为你的SplashScreen只在App启动时显示。
因此,如果Acitivites尚未完成,但只是暂停,则不会显示SplashScreen,因为该应用并未真正关闭。

您可以完成的应用程序时,后退按钮被按下(代码:this.finish())或检查每一个活动的onResume() - 方法,如果应用程序在后台,如果真显示闪屏。

0

我觉得唯一的原因闪屏是以往任何时候都需要用于启动应用程序的,如果你想通过一个线程加载一些信息,而这样做,但是,这只是我的看法。

不管怎么说,你应该发动你的启动画面在你的清单中的第一个活动,你将推出一个意向,将启动下一个活动,然后后?(实际主)。有几个月前我在处理这些问题时使用了一个很棒的教程,它由STEP逐步完成。 我希望这有助于:)

Tutorial I Tutorial II

4

理想情况下你不应该这样做。你应该尊重apps.When的行为,用户的期望,他点击了您的应用程序应该从他离开的地方开始。如果应用程序因内存限制而死亡,那么它将启动一个新的。

不过,如果你想这样做:来源: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。

相关问题