2016-09-23 60 views
0

我有一个活动叫MainActivity时可能恢复:检测为什么活性恢复

  1. 该应用程序打开的第一次。
  2. MainActivity当用户切换到另一个应用程序(例如来电)时已经启动,现在又回到MainActivity
  3. 我的应用程序内部的活动已完成,MainActivity已恢复,因为它是堆栈中的下一个活动。

我有兴趣区分案例#2和#3。有没有办法知道MainActivity恢复后用户是从我的应用程序还是从另一个应用程序中传出?

事情我已经尝试:

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

工作通过使用意图从其他应用区分您startActivity一个标志? – masp

回答

0

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

对于第二点

开始startActivityForResult()的活动,以便一边整理等活动会给回电给你

注:完美的方式startActivityForResult()实现的帮助中你不会面对)正如你在发言

对于第三点

明显startActivityForResult(中提到的任何问题,当您打开的应用程序与其他人永远不会调用所以,在这样的CAS Ë你会认同的onResume()

我希望它会为你