私は Android に単純な AsyncTask クラスを持っています。doInBackground が負を返すことを知っていても、常に onPostExecute メソッドに正の結果が渡されることに気付きました。
私のコードを見てください。このコードをデバッグで実行すると、例外ブロックに到達し、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();
}
}
}
ここで何が欠けていますか?ご協力いただきありがとうございます...