当我去另一个时滑翔崩溃 activity

glide crashing when I go to another activity

我在 Recyclerview 适配器中使用 Glide 从服务器加载图像问题发生在我关闭 Activity 或转到另一个 activity,

   @Override
    public void onBindViewHolder(RecyclerView.ViewHolder holder,  int position) {

            final MyAdapterHolader postholader = (MyAdapterHolader) holder;


            final ListMeesg move = (ListMeesg) moveList.get(position);
              glide.asBitmap().load(move.imagp).skipMemoryCache(true).override(move.width,move.hegth).format(DecodeFormat.PREFER_RGB_565).into(new CustomTarget<Bitmap>(move.width,move.hegth) {
                            @Override
                            public void onResourceReady(@NonNull final Bitmap resource, @Nullable Transition<? super Bitmap> transition) {
                                postholader.imgtitle.setImageBitmap(resource);
                                new Thread(new Runnable() {
                                    public void run() {

                                        File file1 = new File(Environment.getExternalStoragePublicDirectory("/Android/data/mjplus.messages/"), move.imagn);
                                        try {
                                            if (!file1.exists()) {
                                                FileOutputStream fileOutputStream;


                                                fileOutputStream = new FileOutputStream(file1);
                                                resource.compress(CompressFormat.JPEG, 80, fileOutputStream);
                                                fileOutputStream.close();
                                            }
                                        } catch (IOException e2) {


                                            e2.printStackTrace();
                                        }

                                    }
                                }).start();
                            }

                            @Override
                            public void onLoadCleared(@Nullable Drawable placeholder) {


                                postholader.imgtitle.setImageDrawable(placeholder);

                            }

                            @Override
                            public void onDestroy() {


                            }

                            @Override
                            public void onStop() {


                            }

                            @Override
                            public void onLoadFailed(@Nullable Drawable errorDrawable) {
                             ]

                            }

                            @Override
                            public void onLoadStarted(@Nullable Drawable placeholder) {
                             ]

                            }


                        });






    }

logcat:

09-16 17:51:34.621 29129-29144/mjplus.messages I/art: Background partial concurrent mark sweep GC freed 30594(2MB) AllocSpace objects, 26(4MB) LOS objects, 36% free, 28MB/44MB, paused 3.442ms total 115.362ms
    09-16 17:51:34.661 29129-29141/mjplus.messages E/StrictMode: A resource was acquired at attached stack trace but never released. See java.io.Closeable for information on avoiding resource leaks.
                                                                 java.lang.Throwable: Explicit termination method 'close' not called
                                                                     at dalvik.system.CloseGuard.open(CloseGuard.java:184)
                                                                     at com.android.org.conscrypt.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:287)
                                                                     at com.android.okhttp.Connection.upgradeToTls(Connection.java:242)
                                                                     at com.android.okhttp.Connection.connect(Connection.java:162)
                                                                     at com.android.okhttp.Connection.connect(Connection.java:174)
                                                                     at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:316)
                                                                     at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:249)
                                                                     at com.android.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:397)
                                                                     at com.android.okhttp.internal.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:118)
                                                                     at com.android.okhttp.internal.http.DelegatingHttpsURLConnection.connect(DelegatingHttpsURLConnection.java:89)
                                                                     at com.android.okhttp.internal.http.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:25)
                                                                     at com.android.tools.profiler.support.network.httpurl.TrackedHttpURLConnection.connect(TrackedHttpURLConnection.java:128)
                                                                     at com.android.tools.profiler.support.network.httpurl.HttpsURLConnection$.connect(HttpsURLConnection$.java:366)
                                                                     at com.bumptech.glide.load.data.HttpUrlFetcher.loadDataWithRedirects(HttpUrlFetcher.java:104)
                                                                     at com.bumptech.glide.load.data.HttpUrlFetcher.loadData(HttpUrlFetcher.java:59)
                                                                     at com.bumptech.glide.load.model.MultiModelLoader$MultiFetcher.loadData(MultiModelLoader.java:100)
                                                                     at com.bumptech.glide.load.engine.SourceGenerator.startNext(SourceGenerator.java:62)
                                                                     at com.bumptech.glide.load.engine.DecodeJob.runGenerators(DecodeJob.java:309)
                                                                     at com.bumptech.glide.load.engine.DecodeJob.runWrapped(DecodeJob.java:279)
                                                                     at com.bumptech.glide.load.engine.DecodeJob.run(DecodeJob.java:235)
                                                                     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
                                                                     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
                                                                     at java.lang.Thread.run(Thread.java:818)
                                                                     at com.bumptech.glide.load.engine.executor.GlideExecutor$DefaultThreadFactory.run(GlideExecutor.java:446)
    09-16 17:51:34.661 29129-29141/mjplus.messages W/System.err: StrictMode VmPolicy violation with POLICY_DEATH; shutting down.

问题是当 Glide 被打断时你的关闭没有被调用

A resource was acquired at attached stack trace but never released. See java.io.Closeable for information on avoiding resource leaks. java.lang.Throwable: Explicit termination method 'close' not called at dalvik.system.CloseGuard.open(CloseGuard.java:184) at

你可以使用 try-with-resource

 if (!file1.exists()) { 
   try ( 
     //put the resources that you want to close in the round brackets
     FileOutputStream fileOutputStream = new FileOutputStream(file1);
    ){       

     resource.compress(CompressFormat.JPEG, 80, fileOutputStream); 

    } catch (IOException e2) { ... your exception stuff...}
 }

请注意,不再需要调用关闭。