我有这个片段:
公共类 ResultFragment 扩展 Fragment 实现 LoaderCallbacks{
public static ResultFragment newInstance(Bundle args) {
ResultFragment fragment = new ResultFragment();
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getActivity().getSupportLoaderManager().initLoader(0, null, this);
}
@Override
public Loader<EstateSearch> onCreateLoader(int id, Bundle args) {
return new RESTLoader(getActivity(), "http://etc");
}
@Override
public void onLoadFinished(Loader<EstateSearch> loader, EstateSearch es) {
}
@Override
public void onLoaderReset(Loader<EstateSearch> loader) {
}
}
AsyncTaskLoader 看起来像这样:
公共类 RESTLoader 扩展 AsyncTaskLoader {
private String searchUrl;
public RESTLoader(Context context, String searchUrl) {
super(context);
this.searchUrl = searchUrl;
}
@Override
public EstateSearch loadInBackground() {
EstateSearch es = null;
try {
Network Stuff
} catch (Exception e) {
}
return es;
}
@Override
public void deliverResult(EstateSearch es) {
super.deliverResult(es);
}
@Override
protected void onStartLoading() {
forceLoad();
}
@Override
protected void onStopLoading() {
cancelLoad();
}
@Override
protected void onReset() {
super.onReset();
onStopLoading();
}
}
该应用程序因一个神秘的(至少对我而言)错误而崩溃:
http://i46.tinypic.com/260fw43.png
通过放入一些 Log.ds,我知道 AsyncTaskLoader 的构造函数甚至没有被调用。我已经尝试将加载器的 init() 移动到片段生命周期的后期部分。如果这很重要,片段就在 ViewPager 中。从 Activity 调用时,AsyncTaskLoader 工作正常。
关于我做错了什么的任何想法?