- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我想使用 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/
我正在尝试创建一个将搜索结果加载到 fragment 列表中的搜索函数。问题是搜索向 API 发出了两个请求:一个针对类型 A,一个针对类型 B。 我的实现方式是创建一个包含两个 fragment 的
我在加载器方面遇到了一些问题,但我不明白我做错了什么。这是初始化和启动 Loader 的 fragment import android.os.Bundle; import android.suppo
这似乎是一个愚蠢的问题,但我无法理解 AsynctaskLoader 的状态。 我已经多次阅读文档以及网络上的其他教程。但是,我仍然无法理解Asynctask 何时处于Reset 状态 看看从官方文档
有几个关于如何实现自定义 AsyncTaskLoader 的教程,但我发现没有一个讨论如何处理数据缓存 - 在所有这些教程中,数据都只是加载和传送。 您能否给我一些提示,说明如何实现自定义 Async
我不明白AsyncTaskLoader中的所有函数是做什么的,比如onCancelLoad()和onForceLoad()。所有函数及其调用顺序均未正确记录。 假设我想在后台下载一个文件并在需要时取消
在我最近的一个 SO 问题中,有人建议我使用 Loader 作为我的解决方案。所以在这里我试图了解如何实现一个简单的 AsyncTaskLoader 这是我想出的: public class Scra
我有一个 Activity 实现了所有这些代码所在的 fragment 。由于代码是 secret 的,因此最好通过示例对此进行解释。这个例子反射(reflect)了正在尝试做的事情以及我通过测试观察
我需要做出设计决定。 从我在 android 开发者网站上读到的内容来看,我想我想实现一个服务,它启动一个 AsyncTaskLoader 以在后台从操作系统进程加载数据。 在 android 开发人
我想使用 Compatibility Package 在我的项目中实现 AsyncTaskLoader,所以我按照 Android Docs 中的 Loader 手册进行操作。 问题是加载器什么都不做
好吧,我很难理解我的应用程序出了什么问题。所以我有带有这样的选项卡的 ViewPager: 适配器.java public class CustomPagerAdapter extends Fragm
我正在尝试编译示例: http://developer.android.com/reference/android/content/AsyncTaskLoader.html 在onCreateLoad
在 onCreate() 中初始化 Loader 并在按下按钮时重新启动 Loader 的简单代码。关于 android 文档 getLoaderManager().restartLoader() 应
我使用的是 v13 支持库,支持取消所需的所有函数(例如 isLoadInBackgroundCanceled 和 cancelLoadInBackground 都完全缺失。 最佳答案 已回答 her
我有一个简单的 fragment ,试图在其中实现 AsyncTaskLoader。但是我遇到了一个编译时错误: 错误:类型不兼容必需的:加载器成立:装载无人机 错误在 onCreateLoader
我正在使用这个启动一个 AsyncTaskLoader: getLoaderManager().initLoader(0, null, this); 我想我可以用它来判断它是否正在运行: Boolea
谁能告诉我 AsyncTaskLoader 和 AsyncQueryHandler 之间的区别? 我想在我的应用程序中使用 AsynTaskLoader。我的应用程序中现有的是 AsyncQueryH
我想为我的自定义数据源实现 AsyncTaskLoader: public class DataSource { public interface DataSourceObserver {
我的 AsyncTaskLoader 有几个问题,不确定它们是否相关,因为它们都是在尝试重新启动加载程序时发生的。在我的应用程序中,我有 3 个自定义 CursorAdapter 实例,由 1 个单例
他们到处告诉我们应该使用 ASyncTaskLoaders,因为他们非常擅长不阻塞 UI 线程。现在可以使用 Volley。 我想我们不能同时使用它们,因为 Volley 自己做背景。你怎么看?哪个更
我试图了解 AsyncTaskLoaders 的一些细节.这对其他人来说可能是显而易见的,但我找不到一个明确的示例或定义来演示和解释当您覆盖 deliverResult() 时会发生什么情况。方法。实
我是一名优秀的程序员,十分优秀!