Я использую AsyncTask для загрузки изображений, все работает нормально. Прямо сейчас единственная проблема, с которой я сталкиваюсь, это то, что диалог прогресса застрял и завис. ниже мой код, может кто-нибудь помочь мне с этим. Я добавил startLoading в pre-execute и боковую загрузку в метод post-execute AsyncTask. После публикации я открываю один нижний лист, чтобы поделиться загруженными изображениями с социальными сетями. извините за плохой английский
public class ImageSaveTask extends AsyncTask<String, Void, Void> {
private Context context;
private ImageSaveTask(Context context) {
this.context = context;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
startLoading();
}
@Override
protected Void doInBackground(String... params) {
prodImageUri.clear();
int ii = 0;
for (int k=0;k<resellerProductLists.get(globalPosition).getProductImageDtoList().size();k++) {
//Toast.makeText(context,resellerProductLists.get(0).getProductImageDtoList().get(k).getImageUrl(),Toast.LENGTH_SHORT).show();
Log.e("Image",resellerProductLists.get(globalPosition).getProductImageDtoList().get(k).getImageUrl());
ii++;
String img = "IMG-";
String mPath = Environment.getExternalStorageDirectory().toString() + "/Temp/" + img + ii + ".jpg";
File Directory = new File(Environment.getExternalStorageDirectory().toString() + "/Temp");
Directory.mkdirs();
try {
File file = Glide.with(context)
.load(resellerProductLists.get(globalPosition).getProductImageDtoList().get(k).getImageUrl())
.downloadOnly(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL)
.get();
File imageFile = new File(mPath);
InputStream in = null;
OutputStream out = null;
try {
in = new BufferedInputStream(new FileInputStream(file));
out = new BufferedOutputStream(new FileOutputStream(mPath));
byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}
out.flush();
} finally {
if (in != null) {
try {
in.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
if (out != null) {
try {
out.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
prodImageUri.add(Uri.fromFile(new File(String.valueOf(imageFile))));
} catch (InterruptedException | ExecutionException | IOException e) {
e.printStackTrace();
}
}
return null;
}
@Override
protected void onPostExecute(Void res) {
super.onPostExecute(res);
//prodImageUri1.addAll(prodImageUri);
if(single_rdb.isChecked())
{
createImageBitmap();
}
else if(allimg_rdb.isChecked())
{
temps=new ArrayList<>();
for(int i=0;i<prodImageUri.size();i++)
{
if(i==8)
{
break;
}
temps.add(prodImageUri.get(i));
// System.out.println("SIZE "+temps.size()+"TEST1 "+temps.get(i));
createImageBitmap();
}
}
if(btn_click.equals("W"))
{
initSHareBottom("com.whatsapp", "WhatsApp");
}
else if(btn_click.equals("F"))
{
initSHareBottom("com.facebook.katana", "Facebook");
}
else if(btn_click.equals("default"))
{
addPhotoBottomDialogFragment =
new BottomSheetSharingFragment1();
addPhotoBottomDialogFragment.show(((FragmentActivity)context).getSupportFragmentManager(),
"add_photo_dialog_fragment");
}
hideLoading();
}
}