Android 确定调用onPause的原因

Android 确定调用onPause的原因,android,onpause,Android,Onpause,我正在创建一个应用程序,如果应用程序因用户使用设备缺乏活动而自动关闭屏幕而暂停,我需要在其中执行某个操作;如果用户自己将应用程序移动到后台,则需要执行另一个操作(例如,按home按钮) 那么有没有办法知道为什么会调用onPause?或者不涉及使用onPause的任何其他方式?很少有方法可以连接到,以查看onPause之前是否有用户交互(onUserInteraction,onUserLeaveHint) 是一些鲜为人知的生命周期方法的一个很好的图表。您可以连接到一些方法,以查看onPause(o

我正在创建一个应用程序,如果应用程序因用户使用设备缺乏活动而自动关闭屏幕而暂停,我需要在其中执行某个操作;如果用户自己将应用程序移动到后台,则需要执行另一个操作(例如,按home按钮)


那么有没有办法知道为什么会调用
onPause
?或者不涉及使用onPause的任何其他方式?

很少有方法可以连接到,以查看onPause之前是否有用户交互(onUserInteraction,onUserLeaveHint)


是一些鲜为人知的生命周期方法的一个很好的图表。

您可以连接到一些方法,以查看onPause(onUserInteraction,onUserLeaveHint)之前是否有用户交互


是一些鲜为人知的生命周期方法的一个很好的图表。

你应该熟悉@AlLelopath。它没有回答我关于生命周期本身的问题。这不是关于活动生命周期!!!所以你需要的是一个状态机。您应该声明like 3个状态,在onPause中,您应该通过处理相应的回调来检查调用了哪个状态。@matrix您能用一个代码示例来写一个答案吗?问题是如何知道应用程序为什么处于暂停状态,这意味着确定适当的状态?@YonatanNir您可以通过跟踪堆栈中活动的数量以及顶部活动的数量
暂停
。。因此,您可以确保应用程序当前处于后台。您应该熟悉@AlLelopath。它不回答我的问题,这是关于生命周期本身的问题。这不是关于活动生命周期!!!所以你需要的是一个状态机。您应该声明like 3个状态,在onPause中,您应该通过处理相应的回调来检查调用了哪个状态。@matrix您能用一个代码示例来写一个答案吗?问题是如何知道应用程序为什么处于暂停状态,这意味着确定适当的状态?@YonatanNir您可以通过跟踪堆栈中活动的数量以及顶部活动的数量
暂停
。。因此,您可以确保应用程序当前处于后台,并且哪一个可以告诉我暂停调用的原因?您可以编写一个代码示例吗?onUserLeaveHint()-和onUserInteraction()可用于此目的。文档表明,您可以在有交互时捕获事件,并且可以验证是否在此方法之后调用了onPause
例如,当用户按Home键时,将调用onUserLeaveHint(),但当来电导致in-call活动自动带到前台时,将调用onUserLeaveHint())将不会在被中断的活动上调用。
似乎onUserLeaveHint是此处所需的,其中哪一个可以告诉我暂停调用的原因?您可以编写一个代码示例吗?onUserLeaveHint()-和onUserInteraction()可用于此目的。文档表明,您可以在有交互时捕获事件,并且可以验证是否在此方法之后调用了onPause<代码>例如,当用户按Home键时,将调用onUserLeaveHint(),但当来电导致in-call活动自动转到前台时,将不会在被中断的活动上调用onUserLeaveHint()。
似乎这里需要onUserLeaveHint