Android java.lang.IllegalArgumentException: You cannot start a load for a destroyed activity
生活随笔
收集整理的這篇文章主要介紹了
Android java.lang.IllegalArgumentException: You cannot start a load for a destroyed activity
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Android項目有時會出現這樣的異常:
- Thread Name: 'main'
- Back traces starts.
- java.lang.IllegalArgumentException: You cannot start a load for a destroyed activity
- ????at com.bumptech.glide.manager.RequestManagerRetriever.assertNotDestroyed(RequestManagerRetriever.java:323)
- ????at com.bumptech.glide.manager.RequestManagerRetriever.get(RequestManagerRetriever.java:132)
- ????at com.bumptech.glide.manager.RequestManagerRetriever.get(RequestManagerRetriever.java:116)
- ????at com.bumptech.glide.Glide.with(Glide.java:707)
原因是:當你的Activity重新創建并且Glide中的context是舊的時,這個問題最容易發生。例如當你有一個CustomAdapter(ArrayList list, Context context),并且在MainActivity或Fragment重新創建時,你不會將新的context傳遞給適配器。然后Glide告訴你我正在使用的context對象不再存在。
用getApplicationContext()代替掉context
Glide.with(getApplicationContext()) .load(URL)? .into(headImag)
但是 glide加載圖片如果用applicationContext的話,會出現當你離開這個頁面時,圖片的下載工作還在進行,會造成多余的資源消耗,所以可以這樣處理,
// 重寫activity的onDestroy()方法,停止該頁面的glide的加載請求
@Override public void onDestroy() {super.onDestroy();Glide.with(VLionApplication.getInstance()).pauseRequests(); }?
?
?
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的Android java.lang.IllegalArgumentException: You cannot start a load for a destroyed activity的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 通过goole获取手机唯一标识
- 下一篇: 如何在家中进行简单的家居游戏?