Android如何处理来自AsyncTask内部的网络异常
我正在从异步任务调用Web服务。它工作正常,但我正在尝试测试它,当我关闭手机的移动网络。这是为了复制没有信号的用户 这是密码Android如何处理来自AsyncTask内部的网络异常,android,Android,我正在从异步任务调用Web服务。它工作正常,但我正在尝试测试它,当我关闭手机的移动网络。这是为了复制没有信号的用户 这是密码 @Override protected Void doInBackground(String... params) { try { Log.e(TAG, "inside doInBackground"); rotaArray = nfcscannerapplic
@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。我如何处理可能没有网络信号的情况,并优雅地退出应用程序,或者更好地再次调用activities oncreate?我相信您希望提供一些消息或解决一些问题,以防出现网络故障……如果是这种情况,那么您需要检查您的设备是否有活动的网络连接 我想会有帮助的……:)做这样的事
// 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.
...
}
我会仔细检查logcat,如果它正在点击
e.printStackTrace
,那么应该有一个“有问题”的out。另外,你能提供更多的信息吗?这个问题很模糊,谢谢。