作成後に進行状況バーを更新しようとしています (両方とも AsyncTask 内)。進行状況ダイアログが表示され、閉じますが、更新されません。常に 0 に設定されています。私のコードは次のとおりです。 public class ImageTask extends AsyncTask {
@Override
protected Void doInBackground(String... saleId) {
//Drawable drawable = getActivity().getResources().getDrawable(R.drawable.sale_image_holder);
//Bitmap bitmap = ((BitmapDrawable) drawable).getBitmap();
//ByteArrayOutputStream stream = new ByteArrayOutputStream();
//bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
//byte[] imageInAsByteArray = stream.toByteArray(); // here
ImgService imgService = new ImgService();
imgService.addImgToSale(imageInAsByteArray, saleId[0], this);
return null;
}
@Override
protected void onProgressUpdate(Integer... progress)
{
super.onProgressUpdate(progress);
dialog.setProgress(progress[0]);
}
@Override
protected void onPostExecute(Void result) {
dialog.dismiss();
}
public void doProgress(int value){
publishProgress(value);
}
}
ImgService クラスは次のとおりです。
public class ImgService
{
public void addImgToSale(byte[] img, final String saleId, final ImageTask task)
{
final ParseFile file = new ParseFile(saleId + ".jpeg", img);
try {
file.save();
} catch (ParseException e1) {
e1.printStackTrace();
return;
}
task.doProgress(50);
ParseObject image = new ParseObject(DBDictionary.SALE_IMAGES);
ParseObject sale = new ParseObject(DBDictionary.SALE);
sale.setObjectId(saleId);
image.put(DBDictionary.SALE_IMAGES_SALE_ID_P, ParseObject.createWithoutData(DBDictionary.SALE, saleId));
image.put("image", file);
try {
image.save();
} catch (ParseException e1) {
e1.printStackTrace();
return;
}
task.doProgress(100);
}
}
ネットでは、ProgressDialog の表示と非表示には多くの問題がありましたが、進行状況の更新には問題がありませんでした。
ありがとう!