你好,我遇到了这个问题
java.lang.IllegalArgumentException: You cannot start a load for a destroyed activity
在此错误期间,我尝试了其他方法,但没有一个起作用。就我而言,当我的应用启动时,其主要活动是加载视频。当我在加载视频的过程中按返回按钮时,我的应用程序崩溃了。有人可以帮我吗?
这是我的销毁方法
@Override
protected void onDestroy() {
Glide.with(getApplicationContext()).pauseRequests();
super.onDestroy();
}
日志:
10-10 12:33:09.294 752-824/? E/WifiConfigStore: updateConfiguration freq=2437 BSSID=c8:50:e9:0f:10:fa RSSI=-44 "nirc1"WPA_PSK
10-10 12:33:09.628 15936-15936/? E/UncaughtException: java.lang.IllegalArgumentException: You cannot start a load for a destroyed activity
at com.bumptech.glide.manager.RequestManagerRetriever.assertNotDestroyed(RequestManagerRetriever.java:134)
at com.bumptech.glide.manager.RequestManagerRetriever.get(RequestManagerRetriever.java:102)
at com.bumptech.glide.manager.RequestManagerRetriever.get(RequestManagerRetriever.java:87)
at com.bumptech.glide.Glide.with(Glide.java:657)
at com.freesoulapps.preview.android.Preview$7$3.run(Preview.java:277)
at android.os.Handler.handleCallback(Handler.java:815)
at android.os.Handler.dispatchMessage(Handler.java:104)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5631)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:959)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:754)
10-10 12:33:09.690 1803-15644/? E/NetworkScheduler: Invalid component specified.
10-10 12:33:10.087 15936-15936/? E/AndroidRuntime: FATAL EXCEPTION: main
答案 0 :(得分:0)
如果在初始化时使用getApplicationContext() 滑动为Glide.with(getApplicationContext())并通过重写暂停所有请求 onDestroy()为
@override
protected void onDestroy() {
super.onDestroy();
Glide.with(getApplicationContext()).pauseRequests();
}
答案 1 :(得分:0)
请先验证您的当前课程上下文是否可用,然后再使用onDestroy()
方法进行验证。
@override
protected void onDestroy() {
super.onDestroy();
if (!this.isFinishing ()) {
Glide.with(getApplicationContext()).pauseRequests();
}
}
有关更多信息,请查看this
答案 2 :(得分:0)
解决方案:
您必须使用your_activity_name.this
而不是getApplicationContext()
和isDestroyed()
,如下所示:
@override
protected void onDestroy() {
super.onDestroy();
if (!this.isDestroyed()) {
Glide.with(your_activity_name.this).pauseRequests();
}
}
尝试一下。希望对您有所帮助。