0

我在应用程序中有启动画面。当用户在主屏幕并按下返回按钮时;带有“您要退出吗?”的警报对话框 出现,如果用户选择 OK 然后moveTaskToBack(true);被调用:并且应用程序将退出。但是在立即启动应用程序时,不会显示启动画面。如何在每次启动应用程序时显示启动画面?

4

4 回答 4

4

理想情况下你不应该那样做。你应该尊重用户对应用程序行为的期望。当他点击你的应用程序时,它应该从他离开的地方开始。如果应用程序由于内存限制而被终止,那么它将重新启动 .

如果你想这样做:来源:关闭应用程序并在 Android 上启动主屏幕

Intent intent = new Intent(this, FinActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();

FinActivity 内部:在 onCreate 中调用 finish()。

于 2012-09-19T15:06:41.760 回答
4

关于如何制作启动画面的一些提示。

假设我们有SplashActivityHomeActivity

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,因此您的应用程序将关闭。

于 2012-09-19T14:44:34.317 回答
1

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

您可以在按下后退按钮时完成应用程序(代码:),或者如果应用程序处于后台,则this.finish()检查每个 Activity 的onResume()-Method,如果为 true,则显示 SplashScreen。

于 2012-09-19T14:37:06.927 回答
0

我觉得启动屏幕是必要的唯一原因是为了启动应用程序,如果你想在这样做的时候通过线程加载一些信息,但这只是我的意见。

无论如何,您应该将启动画面作为清单中的第一个活动启动,然后在您启动将启动下一个活动的意图之后?(实际的主要活动)。几个月前,当我第一次处理这些问题时,我使用了一个很棒的教程,它会一步一步地与你一起完成。我希望这有帮助 :)

教程一 教程二

于 2012-09-19T14:46:42.143 回答