2009
Nov
5th
ネットワーク接続エラー時の処理を追加
渋滞状況 Ver 1.2.1
電波的に圏外のときなどネットワーク接続でエラーが発生した際の処理を追加しました。WebViewClient を継承している JarticClient で onReceivedError() をオーバーライドして失敗フラグを立てて、 onPageFinished() にてこのフラグを見て表示を切り替えています。ちょっとはまった箇所があったのでいくつか挙げておきます。
- onLoadResource() でフラグ初期化、 onReceivedError() でフラグ立て、 onPageFinished() でフラグのチェックでうまくいくと思っていたのですが、名前解決ができなかったときなどは内蔵しているエラーページを表示しようとし、ここではエラーにならないのでフラグが初期化された状態になって意図通りに動きませんでした。ということで、フラグの初期化は画像の取得を始めるところに持っていきました。
- ロード中を示すプログレスダイアログを非表示にする処理を onPageFinished() にだけ置いておいたのですが、ちゃんと消えてくれないので onReceivedError() 内にも置いています。なんか解決方法があるような気がします。
- そもそもNetworkInfoを使うべきなような気もしますが、以前とあるアプリで Willcom CORE 3G の SIM 経由だとネットワークにつながっていることにならないと判断されたことがあります。そのアプリの中では NetworkInfo が使われていたようなので、今回は利用を避けたのでした。また、サービス圏外・圏内が変わることもあるかなと思ったので、その都度 NetworkInfo で調べるよりは、どうせ WebView を使っているのだしこちらでとも思いました。
Posted by setomits at 12:55 |
Comments: 0