From 0e870a0d919a28a45084a7df5f662afbfd7e086d Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期二, 15 十二月 2020 14:44:28 +0800
Subject: [PATCH] DownloadAndSetImageTask和SetImageTask两个类由于在子线程执行,会经常出现activity关闭后继续执行导致报错崩溃问题,修复此bug

---
 app/src/main/java/cn/flightfeather/thirdapp/adapter/PhotoListAdapter.java |   39 +++++++++++++++++++++++----------------
 1 files changed, 23 insertions(+), 16 deletions(-)

diff --git a/app/src/main/java/cn/flightfeather/thirdapp/adapter/PhotoListAdapter.java b/app/src/main/java/cn/flightfeather/thirdapp/adapter/PhotoListAdapter.java
index 9676ee4..33b1f8f 100644
--- a/app/src/main/java/cn/flightfeather/thirdapp/adapter/PhotoListAdapter.java
+++ b/app/src/main/java/cn/flightfeather/thirdapp/adapter/PhotoListAdapter.java
@@ -1,6 +1,6 @@
 package cn.flightfeather.thirdapp.adapter;
 
-import android.content.Context;
+import android.app.Activity;
 import android.os.Environment;
 import android.support.v7.widget.RecyclerView;
 import android.util.Log;
@@ -24,13 +24,13 @@
 
 public class PhotoListAdapter extends RecyclerView.Adapter<PhotoListAdapter.PhotoListHolder> {
     private List<Mediafile> mediafileList;
-    private Context context;
+    private Activity activity;
     private LayoutInflater layoutInflater;
 
-    public PhotoListAdapter(List<Mediafile> mediafileList, Context context) {
+    public PhotoListAdapter(List<Mediafile> mediafileList, Activity activity) {
         this.mediafileList = mediafileList;
-        this.context = context;
-        layoutInflater = LayoutInflater.from(context);
+        this.activity = activity;
+        layoutInflater = LayoutInflater.from(activity);
     }
 
     @Override
@@ -42,23 +42,30 @@
     @Override
     public void onBindViewHolder(PhotoListHolder holder, int position) {
         Mediafile mediafile = mediafileList.get(position);
+
+        if (mediafile.getGuid() == null) {
+            Glide.with(activity)
+                    .load(R.drawable.icon_add_photo)
+                    .into(holder.iv_photo);
+        } else {
 //        String url = CommonApplication.getInstance().ROOT_URL_RELEASE_IMAGE + mediafile.getExtension1() + mediafile.getGuid() + ".jpg";
 //        Glide.with(context).asDrawable().load(url).override(100,100).skipMemoryCache(true).diskCacheStrategy(DiskCacheStrategy.ALL).into(holder.iv_photo);
 
-        File file = new File(Environment.getExternalStorageDirectory(),mediafile.getPath()+mediafile.getDescription());
-        if (file.exists()){
+            File file = new File(Environment.getExternalStorageDirectory(), mediafile.getPath() + mediafile.getDescription());
+            if (file.exists()) {
 //            SetImageTask task = new SetImageTask(file,holder.iv_photo);
 //            task.execute();
 //            String url = CommonApplication.getInstance().ROOT_URL_RELEASE_IMAGE + mediafile.getExtension1() + mediafile.getGuid() + ".jpg";
-            Glide.with(context)
-                    .load(file)
-                    .placeholder(R.drawable.icon_add_photo_waite)
-                    .override(100,100)
-                    .into(holder.iv_photo);
-        }else {
-            DownloadAndSetImageTask task = new DownloadAndSetImageTask(mediafile,holder.iv_photo,context);
-            task.execute();
-            Log.e("photolist",position+" no image found");
+                Glide.with(activity)
+                        .load(file)
+                        .placeholder(R.drawable.icon_add_photo_waite)
+                        .override(100, 100)
+                        .into(holder.iv_photo);
+            } else {
+                DownloadAndSetImageTask task = new DownloadAndSetImageTask(mediafile, holder.iv_photo, activity);
+                task.execute();
+                Log.e("photolist", position + " no image found");
+            }
         }
     }
 

--
Gitblit v1.9.3