【问题标题】:How to always launch application from splash screen then last left activity如何始终从启动屏幕启动应用程序然后最后一个活动
【发布时间】:2017-12-04 13:28:44
【问题描述】:

在我的应用程序中,我有几个活动,如果我在下次应用程序重新启动时将应用程序留在应用程序中间,它会从我离开的位置开始,我希望我的应用程序从启动屏幕重新启动,然后它应该移动到我离开的活动,我该怎么做

【问题讨论】:

  • 在 Activity onResume 中显示启动画面
  • @Tonteria24 最好在onStart 中进行,因为onResume 会在很多场合被调用。
  • 如果用户使用 Home 键离开应用,则不会在应用重新启动时调用 onStart。

标签: java android android-activity task splash-screen


【解决方案1】:

离开应用程序的确切含义是什么?

场景 1:如果用户从最近的应用程序中完全删除了该应用程序(它已被终止),下次用户将打开该应用程序LAUNCHER(请参阅AndroidManifest.xml)将启动。因此,您应该将 SplashActivity 设为 LAUNCHER 活动。

场景 2:在用户最小化应用程序 onPauseonStop可能 onDestroy 将调用当前活动的生命周期方法。用户从最近恢复应用程序后(如果活动被销毁,则首先调用onCreate 方法)然后将调用onStartonResume 生命周期方法。在docs 中查看有关生命周期方法的更多信息。

每次用户最小化并从最近恢复应用程序时显示启动画面并不是一个特别好的主意,所以我建议坚持使用“场景 1”并且只显示一次启动画面 - 当用户启动应用程序。但是,如果由于某种原因您想在用户恢复应用程序后每次显示启动画面,您可以查看此tutorial。在 Android 中这可能有点棘手,因为您不能只显示它 onResumeonStart 因为这些方法不仅会在您从最近恢复应用程序时调用,而且还会在您启动此活动时调用。

【讨论】:

  • 似乎在每个活动的 onResume 和 onStart 中我必须手动启动启动画面,
  • 另外离开我的意思是按下返回按钮并从应用程序图标或最近的应用程序重新启动
  • 如果您将在 onStart 中启动启动屏幕活动而不进行任何额外检查,即使您从代码启动活动也会启动它。
  • onResume中显示的Splash应该是Dialog而不是Activity,否则可以进入无限递归。
  • @blackHawk 使BaseOperationActivity 类在onStart/onResume 方法中启动启动画面,然后从这个基类扩展所有其他活动,现在您隐含地显示这些活动的启动画面只需致电super.onStart()/super.onResume()
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多