Android 屏幕方向更改时的onLoadFinished()行为
我实现了以下Android 屏幕方向更改时的onLoadFinished()行为,android,android-loadermanager,asynctaskloader,Android,Android Loadermanager,Asynctaskloader,我实现了以下Loader,它是AsyncTaskLoader的子类。在活动的onCreate()方法中调用LoaderManagerinitLoaderManager() 当我旋转屏幕时,我看到onLoadFinished()被成功调用,但是我没有看到任何Loader生命周期方法(onStopLoading(),onStartLoading(),onReset()) 在这种情况下,是什么触发了onload finished()方法?根据我的理解,onLoadFinished()是由Loader的
Loader
,它是AsyncTaskLoader
的子类。在活动的onCreate
()方法中调用LoaderManager
initLoaderManager
()
当我旋转屏幕时,我看到onLoadFinished
()被成功调用,但是我没有看到任何Loader
生命周期方法(onStopLoading
(),onStartLoading
(),onReset
())
在这种情况下,是什么触发了onload finished
()方法?根据我的理解,onLoadFinished
()是由Loader的deliverResult
()方法触发的,该方法将在loadInBackground
()完成后调用,或者我们可以在onStartLoading
()中调用它来将缓存的数据传递到活动中。在这种情况下,我看不到加载程序发生任何状态更改
public EarthquakeLoader(Context context, String url) {
super(context);
this.mUrl = url;
}
@Override
public List<Earthquake> loadInBackground() {
Log.e(LOG_TAG, "loadInBackGround()");
List<Earthquake> earthquakes = QueryUtils.extractEarthquakes(this.mUrl);
return earthquakes;
}
@Override
public void onStartLoading() {
Log.e(LOG_TAG, "onStartLoading()");
forceLoad();
}
@Override
public void onStopLoading() {
super.onStopLoading();
Log.e(LOG_TAG, "onStopLoading()");
}
public void onReset() {
super.onReset();
Log.e(LOG_TAG, "onReset()");
}
publicEarthQuakeLoader(上下文,字符串url){
超级(上下文);
this.mUrl=url;
}
@凌驾
公共列表加载背景(){
Log.e(Log_标签,“loadInBackGround()”);
列出地震=QueryUtils.extracted地震(this.mUrl);
返回地震;
}
@凌驾
开始加载时的公共无效(){
Log.e(Log_标记,“onStartLoading()”);
力载荷();
}
@凌驾
公共无效onStopLoading(){
super.onStopLoading();
Log.e(Log_标记,“onStopLoading()”);
}
公共void onReset(){
super.onReset();
Log.e(Log_标记,“onReset()”);
}