我在 Android 上有一个简单的 AsyncTask 类,我注意到我总是将肯定的结果传递给 onPostExecute 方法,即使我知道 doInBackground 返回的是否定的。
请看一下我的代码。我在调试时运行此代码,并确认我落在异常块上并返回 false。但它没有反映在 onPostExecute 上。
public class AsyncSendOSCTask extends AsyncTask<OSCMessage, Void, Boolean> {
private OSCPortOut oscPortOut;
private Activity activity;
public AsyncSendOSCTask(Activity activity, OSCPortOut oscPortOut) {
this.activity = activity;
this.oscPortOut = oscPortOut;
}
@Override
protected Boolean doInBackground(OSCMessage... message) {
try {
this.oscPortOut.send(message[0]);
return Boolean.TRUE;
}
catch(Exception exp) {
return Boolean.FALSE;
}
}
@Override
protected void onPostExecute(final Boolean result) {
if(!result.booleanValue()) { // this is always true!!!
Toast.makeText(this.activity, "Error Sending OSC", Toast.LENGTH_SHORT).show();
}
}
}
我在这里想念什么?谢谢你的帮助...