2

AsyncTaskからWebサービスを呼び出しています。正常に動作しますが、電話のモバイルネットワークをオフにしたときにテストしようとしています。これは、信号のないユーザーを複製するためです。

これがコードです。

 @Override
        protected Void doInBackground(String... params) {

            try {
                Log.e(TAG, "inside doInBackground");


                rotaArray = nfcscannerapplication.loginWebservice.getRota(params[0], params[1]);


            } catch (Exception e) {

                Log.e(TAG, "there's a problem");

               e.printStackTrace();


            }
            return null;

        }

java.net.ConnectionExceptionがスローされても、logステートメントがlogcatenevにログアウトされることはありません。ネットワーク信号がない可能性に対処してアプリを正常に終了する方法、またはアクティビティをoncreateに再度呼び出す方法を教えてください。

4

2 に答える 2

1

ネットワーク障害が発生した場合に、メッセージを提供したり、何かを解決したりしたいと思います。その場合は、デバイスにアクティブなネットワーク接続があるかどうかを確認する必要があります。

このリンクが役立つと思います...:)

于 2012-09-24T11:50:22.580 に答える
0

このようなことをする

// this is inner to activity class
class MyAsyncTask extends AsyncTask {
...
    @Override
    protected Void doInBackground(String... params) {

        try {
            Log.e(TAG, "inside doInBackground");
            rotaArray = nfcscannerapplication.loginWebservice.getRota(params[0], params[1]);

        } catch (IOException e) {
           HandleNetworkError(e);
           e.printStackTrace();
        }
        return null;

    }
}
// Some where in your activity class.
void HandleNetworkError(Exception e) {
    // Do whatever with the exception message, eg display it in a dialog.
    ...
}
于 2012-09-24T11:51:01.037 に答える