加载程序在调用 initLoader() 后不启动?
2022-09-03 03:45:42
我有一个片段,想要在单击按钮时启动加载程序:
public class MyFragment extends Fragment {
public void onActivityCreated() {
super.onActivityCreated();
Button btn = ...;
btn.setOnClickListener(new OnClickListener() {
public void onClick(View view) {
getLoaderManager().initLoader(500, null, mMyCallback);
}
});
}
private LoaderManager.LoaderCallbacks<String> mMyCallback = new LoaderManager.LoaderCallbacks<String>() {
@Override
public Loader<String> onCreateLoader(int arg0, Bundle arg1) {
Log.e(TAG, "LoaderCallback.onCreateLoader().");
return new MyLoader(getActivity());
}
}
}
public class MyLoader extends AsyncTaskLoader<String> {
public MyLoader(Context context) {
super(context);
}
@Override
public String loadInBackground() {
Log.e(TAG, "Hi, running.");
return "terrific.";
}
}
单击按钮后,我可以看到调用的回调的onCreateLoader方法被调用,但创建的加载程序从未实际启动过。我们是否需要在加载程序本身上调用 forceLoad() 才能让它真正启动?没有一个示例帖子这样做,
谢谢