私はonPostExecute()
からdoInBackground()
仕上げと値の復帰後、私は戻ってMainActivity
に値を取得するためのインターフェイスを使用したい、画像認識のためのAsyncTask
を持って、私はなぜわかりません私はデバッガ、任意のアイデアを実行すると戻りtmpはスキップされますか?はAsyntaskにPostExecuteに値を戻すことはできませんアンドロイド
private class ProcessImageLocally extends AsyncTask<ImageItem, Void, ImageItem>{ //+++++++++++++++++++++++++++++++++++++++
public AsyncReponseForImageItem response = null;
@Override
protected void onPreExecute() {
localProcessBegin(); //Process data locally
}
@Override
protected ImageItem doInBackground(ImageItem... params) {
//**************processing locally*****************
try {
Bitmap bm = BitmapFactory.decodeFile(params[0].getBitmapPath());
Bitmap croppedBitmap = getBitmap(getApplicationContext(), INPUT_SIZE, bm);
final List<Classifier.Recognition> results = classifier.recognizeImage(croppedBitmap);
String resultStr = results.toString();
String trimResult = resultStr.substring(resultStr.indexOf("[")+1,resultStr.indexOf("]")).trim();
String localId = params[0].getId();
trimResult = trimResult.substring(0,trimResult.indexOf(")")) + " likely)";
Bitmap thumbnail = getBitmap(getApplicationContext(), 50, bm);
ImageItem tmp = new ImageItem(localId, imgToString(thumbnail), trimResult);
return tmp; //Skip to the outside return
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(ImageItem imageItem) {
response.asyncFinish(imageItem);
}
}
catchでIOExceptionがスローされた場合、デバッグモードでチェックしましたか?たぶんtryブロックで何か間違っているかもしれません。 – BVantur
ログキャットを提供できますか? –