2

私はAndroidを初めて使用しますが、JavaとJava EEについてある程度知っています。サーバー(Webサービス)と通信している間は、サーバー(Webサービス)からの応答で正常に動作します。ただし、5秒を超える時間遅延がある場合は、になりANRます。ここで私の質問は、サーバーが応答しているかどうかを知るために、Java機能を確認する方法です。これで何かアイデアはありますか?

いくつかの関連する例でさえ私を助けます。

コードスニペット

Handler handler = new Handler(); 
handler.postDelayed(new Runnable() { 
    public void run() { 
             // Problem is if Server is not Working , it delays and the UI wents to ANR 
              if(  sendToWebservice(String_to_send)=="fromWebservice") {
                Toast.makeText(context, "Connected", 500).show();

              }
             else {
                Toast.makeText(context, "Not Connected,Try again ", 500).show();
                finish();
            }
     } 
    }, 5000); 

追加情報:私はAndroidで&jax.wsを作成するために使用しています。前もって感謝します。webserviceksoap api

編集

if(  sendToWebservice(String_to_send).equalIgnorecase("fromWebservice") instead of ==

ここで構文にフレーミングしている間、これを入れるのを逃しました.. !!

4

1 に答える 1

2

まず第一に、この条件は、

if(sendToWebservice(String_to_send).equals("fromWebservice")) 

ANRについては、

応答タイムアウトを HTTP 要求に入れることができるので、時間遅延がある場合はサーバーからタイムアウト応答を取得します。また、可能であれば、UI スレッドで Web サービス呼び出しが行われ、他のワーカー スレッドで Web サービス呼び出しが行われたときに進行状況ダイアログを表示します。

于 2012-02-29T06:49:33.990 に答える