2012-10-06 100 views
1

我的android應用程序中有一個WebView,並且此WebView正在運行一個網站,其中包含一定的Javascript。當我的應用程序在後臺運行時,用戶報告功耗很高,我期望這是由於此javascript。但是,我不想完全卸載或刪除WebView,因爲這會影響恢復時間。Android WebView在應用程序在後臺運行時消耗大量電量

當應用程序在後臺(onPause())時,有什麼辦法有選擇地關閉Javascript和/或禁用WebView?

+0

我不確定您的webview是否可以在背景中執行某些操作。我想你的webview是你的活動的一部分。當活動不可見時,它已暫停。 – vandzi

+0

我可以肯定地說,我看到內容,在恢復活動時,表明webview在後臺「完成了」。也就是說,我看到時間敏感的項目在應用程序暫停時必須已經加載。 –

回答

1

認可爲http://www.mcseven.me/2011/12/how-to-kill-an-android-webview/唯一的工作方式是重定向到沒有JavaScript的空白頁面(並在恢復後返回)。

在PhoneGap的的情況下,頁面應該包含的代碼返回自己:

<!DOCTYPE html><html><head> 
     <script type="text/javascript" src="js/phonegap/cordova-2.9.0.js"></script> 
     <script type="text/javascript" src="js/jquery/jquery-1.9.1.min.js"></script> 
    </head><body> 
     <script type="application/javascript"> 
      $(document).on('deviceready', function() { 
       $(document).on('resume', function() { 
         return history.back ? history.back() : history.go(-1); 
       }); 
      }); 
     </script> 
    </body></html> 

更新:以上是科爾多瓦2.x.x.在科爾多瓦的3.xx(不知道是否因爲3.0.0,但是可以肯定在當期的3.7.x),你可以簡單地添加KeepRunning偏好配置中的XML:

<preference name="keepRunning" value="false" /> 

這將暫停所有JS計時器,直到APP再次恢復;見https://stackoverflow.com/a/21629586/2011448

相關問題