Issue 1:
MainActivity has below code for load GIF first time it's working if I restart application it gets a crash for loading gif.

ImageView imageViewGIF = navigationView.findViewById(R.id.imageViewGIF);
Glide.with(this).asGif().load(R.drawable.gift_3).into(imageViewGIF);

but when I restart the app it gets a crash for at loading of GIF

```

Intent intent = new Intent(context, SplashActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();

application get a crash with below log.

```
FATAL EXCEPTION: main
Process: com.app.package, PID: 19360
java.lang.IllegalArgumentException: You cannot start a load for a destroyed activity
at android_support.qc.b(RequestManagerRetriever.java:298)
at android_support.qc.a(RequestManagerRetriever.java:123)
at android_support.ji.a(Glide.java:589)

i have used

'com.github.bumptech.glide:glide:4.2.0'``

'com.github.bumptech.glide:glide:4.3.1'

both versions have the same issue

Issue 2:
TLDR; Glide should just log and cancel the load instead of crashing when the activity is destoryed since there is no point in loading anything. The user of the library shouldn't have to explicitly handle this situation.

Glide Version/Integration library (if any): 'com.github.bumptech.glide:glide:3.6.1'

Device/Android Version: Any/Android 5.0+

Issue details/Repro steps/Use case background:

This issue is related to issue #138. When making a call on glide if the activity has been destroyed it will throw an IllegalArgumentException. The following code in the RequestManagerRetriever.java class is responsible:

@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
private static void assertNotDestroyed(Activity activity) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1 && activity.isDestroyed()) {
throw new IllegalArgumentException("You cannot start a load for a destroyed activity");
}
}

This is causing a crash in my crashlytics console for a small percentage of my users. There is likely some kind of timing issue where the user hits home as they are scrolling a big list and the activity is cleaned up which results in this crash. I could fix this issue by wrapping glide and running this code myself and simply not calling glide in this situation. However I believe this is the wrong approach, the library shouldn't be crashing in this situation and instead should log and do nothing.

If the activity is destroyed then the view that is being displayed which the image is being displayed is not visible and as a result no exception should be thrown. Instead glide should log and simply not show the image. Users of the library should not have to explicitly handle situations like these, it makes more sense to just handle it in the library.

Glide load line:

Glide.with(context).load(url).bitmapTransform(new GrayscaleTransformation(getContext())).into(imageView);

Layout XML: not relevant

Stack trace / LogCat:

Fatal Exception: 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:620)
at com.myapp.myapp$24.run(MyAppClass.java:977)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5431)
at java.lang.reflect.Method.invoke(Method.java)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:914)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:707)