Я использую Glide для загрузки изображения из Интернета в моем приложении для Android.Когда пользователь нажимает кнопку «Выйти», я выхожу из системы, удаляя все общие настройки и перезапуская приложение, используя следующий код:
Intent i = getActivity().getBaseContext().getPackageManager().getLaunchIntentForPackage( getActivity().getPackageName() );
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
getActivity().finish();
, и выход из системы работает отлично.Но, когда пользователь снова входит в систему, происходит сбой моего приложения.
Вот подробности журнала:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.highavenue.android, PID: 21503
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:629)
at com.highavenue.android.adapter.ActivityTimelineAdapter.onBindViewHolder(ActivityTimelineAdapter.java:181)
at android.support.v7.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:6673)
at android.support.v7.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:6714)
at android.support.v7.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(RecyclerView.java:5647)
at android.support.v7.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:5913)
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5752)
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5748)
at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2232)
at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1559)
at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1519)
at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:614)
at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3812)
at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:3529)
at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:4082)
Код: (где и как я использовал Glide)
Glide.with(context)
.load(users_list.get(user_position).getProfileImageURL())
.thumbnail(0.1f)
.override(100, 100)
.into(holder.profile_image);
приведенный выше код использовался в классе RecyclerViewAdapter, где context ссылается на контекст фрагмента.
Примечание. Это исключение не возникает, когда пользователь вручную закрывает приложение и снова открывает его.