Android 有没有办法知道我的活动暂停的原因?

Android 有没有办法知道我的活动暂停的原因?,android,Android,我有一个类似浏览器的应用程序,所以我无法控制页面中运行的javascript,其中一些可能会疯狂循环,浪费电池。还可能播放视频或音频。我希望当用户离开我的应用程序进入另一个应用程序时,所有这些都暂停。为此,我调用webView.onPause()和webView.pauseTimers()。我只尝试了暂停,但根据我加载的页面,电池仍然会耗尽。您可能知道,pauseTimers适用于所有网络视图,这意味着我可能停止加载任何广告 因此,我只想在因为用户离开应用程序而暂停我的活动时调用pauseTim

我有一个类似浏览器的应用程序,所以我无法控制页面中运行的javascript,其中一些可能会疯狂循环,浪费电池。还可能播放视频或音频。我希望当用户离开我的应用程序进入另一个应用程序时,所有这些都暂停。为此,我调用
webView.onPause()
webView.pauseTimers()
。我只尝试了暂停,但根据我加载的页面,电池仍然会耗尽。您可能知道,
pauseTimers
适用于所有网络视图,这意味着我可能停止加载任何广告

因此,我只想在因为用户离开应用程序而暂停我的活动时调用
pauseTimers
,而不是在用户离开我的活动转到同一应用程序中的另一个活动时调用,因为它可能有广告

因此,我可以知道我的活动何时因用户离开应用而暂停吗


谢谢。

您尝试过重新实现onPause()方法吗?您可以分析stacktrace以获得一些线索

此外,此链接可能会帮助您:
覆盖
活动中的
onPause
方法

@Override
protected void onPause() {
     super.onPause();

     //Do whatever you want to do 
 }

您应该重写Activity.onUserLeaveHint()

当用户选择某个活动即将进入后台时,作为活动生命周期的一部分调用。例如,当用户按下Home键时,
onUserLeaveHint()
将被调用,但当来电导致in-call活动自动带到前台时,
onUserLeaveHint()
将不会在被中断的活动上被调用。在调用此方法的情况下,此方法将在活动的
onPause()回调之前调用


看看
活动。onUserLeaveHint()
很有趣,这可能就是我需要的,谢谢。很酷,我添加了它作为完整性的答案