检测恢复活动的原因

时间:2016-09-23 18:07:02

标签: android android-activity

我有一个名为MainActivity的活动,可能会在以下情况下恢复:

  1. 应用程序首次打开。
  2. 当用户切换到另一个应用程序(例如来电)时,
  3. MainActivity已经启动,现在又回到MainActivity
  4. 我的应用内的活动已完成,MainActivity已恢复,因为它是堆叠中的下一个活动。
  5. 我有兴趣区分案例#2和#3。有没有办法知道用户来自我的应用程序,或者在MainActivity恢复时来自其他应用程序?

    我尝试过的事情:

    1. In Android, how can I detect why my activity was resumed?中的示例涵盖了一些边缘情况,但没有涵盖这两种情况。
    2. 确保使用startActivityForResult()开始所有活动并不总是有效,因为许多活动可以从框架开始(例如Google Play服务中的内容),而且无法跟踪这些活动。
    3. Application.ActivityLifecycleCallbacks似乎无法区分从应用内部恢复活动与用户互动的情况。

1 个答案:

答案 0 :(得分:0)

很容易识别出你的第二和第三点差异。

第二点

使用startActivityForResult()开始您的活动,这样在完成其他活动时会给您回电

注意:在完美方式startActivityForResult()实现的帮助下,您将不会遇到任何问题,如您在语句中提到的那样

For 3rd Point

很明显,当您将应用程序与其他人切换时,startActivityForResult()永远不会调用,因此在这种情况下,您将使用onResume()来识别

我希望它对你有用