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 语句永远不会注销到 logcat enev。我该如何处理可能没有网络信号并优雅地退出应用程序,或者更好地再次调用活动 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 回答