【问题标题】:press home key button and reinitialize the application按主页键按钮并重新初始化应用程序
【发布时间】:2014-11-06 01:27:58
【问题描述】:

当用户在 Android 手机上按下 Home 按钮时,我的应用程序 Activity 面临这样一种情况。

我使用了 OnPause() 方法。当用户按下 Home 键时,我调用了这个。正常情况下,用户再次启动应用时,会调用activity的onResume()方法。

但有时,当用户重新启动应用程序时,它会打开 Launcher Activity(而不是调用当前 Activity。)

所以我很困惑。在我的手机中,它总是调用当前的活动。但有时在另一部手机上,我看到它调用启动器活动并且应用程序再次启动。

如何解决这个问题?我是不是做错了什么?

【问题讨论】:

  • 你在 onPause() 和 onResume() 方法中做了什么? Android 根据可用内存在不同手机上以不同方式管理内存。即使您使用主页键退出,该应用程序也很可能在不再处于活动状态后被终止。阅读活动生命周期以了解更多信息。
  • 您应该将最后一个位置保存在 onPause/onDestroy 中。所以,当用户回来时,你恢复到最后一个位置

标签: java android android-activity android-homebutton


【解决方案1】:

试试android:launchMode="singleTop"

正如doc 所说:

如果 Activity 的实例已经存在于目标任务的顶部,系统会通过调用其 onNewIntent() 方法将 Intent 路由到该实例,而不是创建 Activity 的新实例。

【讨论】:

    【解决方案2】:

    按下主页按钮意味着最小化应用程序。不清除堆栈,然后应用程序将进入 onPause() 和 onStop() 状态。当用户启动应用程序时,它执行 onResume() 方法,因为应用程序实例已经创建。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-24
      • 2011-11-19
      • 1970-01-01
      相关资源
      最近更新 更多