有没有办法知道为什么我的活动被暂停?

时间:2014-04-12 16:38:58

标签: android

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

因此,出于这个原因,我只想在我的活动暂停时才调用pauseTimers,因为用户正在离开应用,但是当用户离开我的活动去同一个应用中的其他活动时因为它可能有广告。

因此,我可以知道我的活动何时暂停,因为用户正在离开应用程序?

感谢。

3 个答案:

答案 0 :(得分:0)

您是否尝试过重新实现onPause()方法?您可以分析堆栈跟踪以获得一些线索。

此外,此链接可能会帮助您: http://developer.android.com/training/basics/activity-lifecycle/pausing.html

答案 1 :(得分:0)

您应该覆盖Activity.onUserLeaveHint()

  

当活动即将作为用户选择的结果进入后台时,被称为活动生命周期的一部分。例如,当用户按下Home键时,将调用onUserLeaveHint(),但是当来电呼叫导致呼叫中的Activity自动转到前台时,将不会调用onUserLeaveHint()活动被打断了。在调用它的情况下,在活动的onPause()回调之前调用此方法。

http://developer.android.com/reference/android/app/Activity.html#onUserLeaveHint()

答案 2 :(得分:-1)

覆盖onPause。{/ p>中的actvity方法

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

     //Do whatever you want to do 
 }