androidアプリを開発していて、特に変更した覚えがないのにレビューに「電池の消費が激しい、アンインストールした」
とか書かれてたので
「今回のアップデートではWebViewの初期URLを変更しただけでそんなことがあるわけ」
あった
で、実際変更は上記の通り、初期URLを変更しただけ。
ただし、そのURLで表示されるページが画像がスライドするJavaScriptが二箇所ほどある結構CPUを食うページでした。
DDMSでチェックしてみると、アプリがBackgroundに入ってもWebViewが動いてる・・・どういうことなの・・・
と思って調べてみると、アプリがbackgroundに入ってもWebViewを動かす必要がないときはonPauseとonResumeできちんとWebViewを一時停止してやらないといけないようでした。
レビューしてくれた人すいません。気づいてくれてありがとうございます。
[参考]WebViewでgifアニメを表示してるとWebViewCoreThreadが動き続ける
http://starzero.hatenablog.com/entry/20120716/1342421720
@Override protected void onResume() { super.onResume(); mWebView.resumeTimers(); } @Override protected void onPause() { super.onPause(); mWebView.pauseTimers(); }
追記
resumeTimers pauseTimers を使う時の注意 - ひらい ぶらり Hi-Library
追記の追記
そもそもandroid3.0 以上ならば、WebViewにはonPauseとonResumeが実装されていて、個々のインスタンスで勝手に一時停止されるようです。未検証。