Android onAppLeave/onAppReturn events



我正在尝试在 Android>= 4.0 中实现 onAppLeave/onAppReturn 事件。当用户离开应用(转到另一个应用、按主页等)并返回到应用(即应用被带到前台,而以前不是)时,应该触发这些。目前,我正在跟踪应用程序中所有活动的生命周期调用,根据生命周期调用的顺序确定何时触发事件。在多个设备上进行测试后,似乎同一应用程序中的活动之间的生命周期事件按以下顺序发生:

Time   Activity A    Activity B
----   ----------    ----------
 |     onPause
 |                   onStart
 |                   onResume
 v     onStop

假设这是正确的,

  • 当应用中一个活动的onStop之前没有来自应用中另一个活动的onResume时,可以触发 onAppLeave 事件。
  • 当应用中一个活动中的onStart之前没有来自应用中另一个活动的onPause时,可以触发 onAppReturn 事件。

这个逻辑正确吗?是否存在这些假设无效的情况?

根据文档,逻辑是正确的。当用户单击电子邮件、电话、地图等,链接并启动另一个活动(如电话拨号器、Gmail 编辑器或地图)时,可能会出现其他情况。 用户可能会将这些活动视为应用的一部分,但触发 AppLeave 事件的此逻辑不会。

最新更新