1

我想区分以下用例:

案例 1:用户停留在同一个应用程序中,并在同一个应用程序的不同活动中导航。

案例 2:用户离开应用程序,可能只是调用他设备的主屏幕或调用其他应用程序的活动。

在案例 2 中,我想在再次调用我的主要活动时刷新一些数据,在案例 1 中,这不是必需的。生命周期方法 onResume() 和 onStart() 在这两种情况下都会被调用,所以简单地将我的代码放在那里是不可能的。我能做些什么?谢谢。

4

2 回答 2

1

每当您发出将您带出应用程序的导航命令并在加载主 Activity 时检查该共享首选项时,您都必须写入共享首选项。要处理后退按钮情况,您可以在活动中覆盖onBackPressed()并处理按下主页按钮,您可以查看此博客文章: http: //nisha113a5.blogspot.com/。如果您想处理最近的应用程序切换器,您可以执行类似于主页按钮方法的操作。

于 2013-09-17T21:53:56.660 回答
0

您可以使用生命周期事件来检测您何时离开或进入您的应用程序。以下是我发现有效的规则:

  • 当用户进入时,总是调用 onResume (在当前的活动上)
  • 当用户离开时,总是调用 onStop(在当前活动上)*
  • 当用户在活动之间移动时,总是在新活动上调用 onResume,并且总是在旧活动上调用 onStop。onResume 调用总是在 onStop 之前

*除了按下电源按钮(关闭)时,您可能只会看到一个 onPause 呼叫。

更多信息在这里:http ://www.artificialworlds.net/blog/2015/06/05/detecting-whether-an-android-app-is-stopping-or-starting/

于 2015-06-17T22:56:32.243 回答