2011-01-26 9 views
4

私のアプリでは、xmlで応答するサーバーに接続します。私はSAX Parserと解析し、データを取得します。Android - インターネットからデータをダウンロードする>>接続エラーをキャッチ

質問です:

接続の問題に対処するための最良の方法は何ですか?

(利用可能なインターネット接続がない場合はこの時点でアプリは、単に私が実装ProgressDialogを示し続けて)

答えて

0

Heiko Ruppの提案に従うだけでなく、ダウンロードを実行する前にネットワーク接続の可用性をチェックすることもできます。 my post on the subjectを参照してください。

+0

ありがとう、これは非常にうまくいきます! – Abramodj

+0

いいえ、これはうまく機能しません。ダウンロード前に接続をチェックしても、ダウンロードプロセス中に接続が失われないことは保証されていません。 – junmats

+0

@junmatsでは、両方の方法を同時に使用する必要があります。つまり、開始する前に接続が利用可能であることを確認し、ダウンロード処理中に発生したエラーを捕まえて処理します。たとえば、接続が再度利用可能になったときにダウンロードをキューイングしてから再開します。 –

4

だから、基本的には(擬似コード)この場合

ProgessDialog pd = new ProgressDialog(this).show(); 
Sax.parseStuff(); 
pd.dismiss(); 

、ラップを行います解析のものとあなたはまたtry { .. } catch (XYZException e ; pd.cancel(); throw e)かの操作を行うことができ例外

ProgessDialog pd = new ProgressDialog(this).show(); 
try { 
    Sax.parseStuff(); 
} 
finally { 
    pd.dismiss(); // or cancel 
} 

にダイアログをキャンセルアプリの別のレイヤーでExceptionを処理したいとします。

+0

私はあなたの方法を試してみましたが、インターネット接続を無効にすると、ProgressDialogが表示されたままになっていました... – Abramodj

+0

@Abramodjダイアログをポップアップして試してみる前に、リモートサーバーに接続すると、この問題を回避できます。私のポストのリンクを参照してください。 –

関連する問題