我们知道glide是通过给页面绑定一个空的fragment来监听页面的生命周期的,那么如果是dialog上面加载一张图片呢,这时glide监听的是页面的生命周期还是dialog周期,由于在网上找了许久也没有解决我的疑惑,没办法只能用一个简单粗暴的方法来实现了:在Glide源码上下断点Debug一下!
RequestManager.java
@Override
public void onStart() {
// onStart might not be called because this object may be created after the fragment/activity's onStart method.
resumeRequests();
}
/**
* Lifecycle callback that unregisters for connectivity events (if the android.permission.ACCESS_NETWORK_STATE
* permission is present) and pauses in progress loads.
*/
@Override
public void onStop() {
pauseRequests();
}
/**
* Lifecycle callback that cancels all in progress requests and clears and recycles resources for all completed
* requests.
*/
@Override
public void onDestroy() {
requestTracker.clearRequests();
}
在onStart,onStop,onDestroy分别下断点:
- 当页面启动dialog弹出的时候:进入断点顺序onStop ->onStart
- dialog消失时候:没有任何现像
- dialog依附的Activity销毁的时候:onStop ->onDestroy
好了分析完毕,问题解决,当dialog消失的时候glide并没有做任何处理