我每次使用loader都有这个问题。如果我开始我的AsyncTaskLoader
然后旋转屏幕(不重要一次或多次)onLoaderFinished()
不会被调用。 loadInBackground()
完成其工作,但onLoaderFinished()
未被调用。它看起来像回调错过,但在活动onCreate()
我:LoaderCallbacks旋转后错过
LoaderManager lm = getSupportLoaderManager();
if (lm.getLoader(LOADER_FLIGHTS) != null) {
lm.initLoader(LOADER_FLIGHTS, null, mFlightsLoaderCallbacks);
}
不要紧回调是由活动或现场实施。在我来说,我使用领域:
LoaderCallbacks<SearchResult> mFlightsLoaderCallbacks = new LoaderCallbacks<SearchResult>() {
有时工作不错,但在一些设备中我又得到了这个麻烦。
我搜索了Android的错误跟踪器,但没有发现有用的东西。
这是我的错,我该如何纠正它?
编辑:
private Handler mHandler = new Handler();
@Override
public void onLoadFinished(Loader<SearchResult> loader, SearchResult res) {
mHandler.post(new Runnable() {
@Override
public void run() {
dismissProgress(R.string.dlg_wait_flights);
}
});
mResult = res;
Helper.Log.d(TAG, "Loader.onLoadFinished.");
您的活动_is_处理程序,或有一个处理程序对象?你确定它没有执行,或者你只是看不到结果? – 2013-03-04 15:41:21
@ClassStacker请看看更新的代码 – rocknow 2013-03-04 15:55:26
关于你的编辑,这意味着你没有看到日志消息? – 2013-03-04 15:58:10