gpt4 book ai didi

android - AsyncTaskLoader 不运行

转载 作者:IT老高 更新时间:2023-10-28 21:50:30 27 4
gpt4 key购买 nike

我想使用 Compatibility Package 在我的项目中实现 AsyncTaskLoader,所以我按照 Android Docs 中的 Loader 手册进行操作。

问题是加载器什么都不做,似乎 loadInBackground() 从来没有被调用过

知道我的代码有什么问题吗?(ExpandableListFragment 扩展了 Fragment,但不覆盖任何关键方法)

谢谢你:-)

/**编辑:

我意识到(晚了,我是个白痴)AsyncTaskLoader 是一个抽象类,所以我需要对它进行子类化... m(__)m我留下这个问题,以防有人从我身后过来,谁知道...

public class AgendaListFragment extends ExpandableListFragment implements
LoaderManager.LoaderCallbacks<JSONArray> {

private TreeMap<Integer, ArrayList<Evento>> mItems = new TreeMap<Integer, ArrayList<Evento>>();
private AgendaListAdapter mAdapter;
private ProgressBar mProgressBar;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View root = inflater.inflate(R.layout.fragment_agenda, container);
mProgressBar = (ProgressBar) root.findViewById(R.id.loading);
return root;

}

@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);

mAdapter = new AgendaListAdapter(getActivity());
setListAdapter(mAdapter);

getLoaderManager().initLoader(0, null, this);

}

@Override
public Loader<JSONArray> onCreateLoader(int arg0, Bundle arg1) {
mProgressBar.setVisibility(View.VISIBLE);
return new AsyncTaskLoader<JSONArray>(getActivity()) {
@Override
public JSONArray loadInBackground() {

return getDataFromService(AgendaServices.LISTADO_MES);

}

};
}

@Override
public void onLoadFinished(Loader<JSONArray> loader, JSONArray data) {

// Some stuff to turn JSONArray into TreeMap

mProgressBar.setVisibility(View.GONE);
mAdapter.setItems(mItems);

}

@Override
public void onLoaderReset(Loader<JSONArray> arg0) {
mAdapter.setItems(null);
mProgressBar.setVisibility(View.VISIBLE);

}

}

最佳答案

我认为 Compatibility 包的最佳解决方案是重写 AsyncTaskLoader.onStartLoading 方法。

例如

@Override
protected void onStartLoading() {
if(dataIsReady) {
deliverResult(data);
} else {
forceLoad();
}
}

关于android - AsyncTaskLoader 不运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8606048/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com