Articles of android loadermanager

我必须使用Fragments来获得LoaderManager吗?

根据一些文档,我可以在Activity或Fragment中使用Loader,但Compatibility Package显示只有FragmentActivity具有getLoaderManager()方法。 由于旧的托pipe游标已被弃用,我们必须使用光标加载器。 那么为什么这个数据pipe理function应该与UI小部件的select联系起来呢? 对我来说完全是无稽之谈。 谢谢P.

如何在android中的LoaderManager中使用两个游标和CursorJoiner

我有一个ContentProvider ,它有两个表1. OnlineContacts 2. AllContacts 。 然后我有一个方法,我在查询两个表,并分别得到他们的结果cursors 。 然后使用CursorJoiner join他们并制作Contacts列表。 将此列表传递给我的CustomAdapter extending BaseAdapter ,我填充我的listview 。 喜欢 : public static List<Contact> getContacts(Context context){ List<Contact> contactList = new ArrayList<Contact>(); // Getting First Cursor String URL = xyz; Uri baseUri1 = Uri.parse(URL); String[] select = xyz; String where =xyz; Cursor cursor = context.getContentResolver().query(baseUri1, select, where, null, "pid"); // […]

从LoaderManager获取“在启动时调用doStart”。 为什么?

我的代码有一个活动,有一个FragmentPagerAdapter根据需要创build“n”个片段。 Activity有一个加载器,每个片段都有自己的加载器。 所有装载机都有唯一的ID。 (Activity的加载器实际上决定了适配器中的页数) 我不断地得到这个警告,不能把我的手指放在什么原因造成的。 它似乎并不重要,也看着LoaderManger的代码抛出这个警告,但仍然 – 警告通常是错误的迹象。 最初使用FragmentStatePagerAdapter,然后移动到FragmentPagerAdapter,认为这可能是问题 – 但显然不是这样。 发布代码确实会使这个变得复杂,并且添加很less。 有什么想法吗?

Loader和LoaderManager – 如何确定当前的Loader是否处于活动状态并正在运行?

如何查询LoaderManager以查看Loader是否正在运行?

是onLoadFinished()asynchronous(后台线程)?

我目前正在使用一个加载器pipe理器来填充drawablelayout中的expandablelistview。 如果callback函数onLoadFinished()正在UI线程或后台线程上运行,我无法在文档中find任何地方。 它是在后台线程?

getSupportLoaderManager()在不同的片段中使用相同的ID?

我在一个FragmentActivity与多个ListFragments一个viewPager。 为了填充不同的列表视图,我在装载器中获得LoaderManager和initiliaze。 我想为每个片段都有一个独特的LoaderManager,但是片段没有getSupportLoaderManager()方法,所以我需要调用父片段的活动: getActivity().getSupportLoaderManager() 这种方法的问题是我的Loaders id在不同的片段中彼此冲突。 如果在一个片段中已经有多个加载器ID,那么它会变得有点麻烦。 那么是否有办法为每个片段获取唯一的LoaderManager,而不是调用父级? 我基本上希望能够在多个片段上使用相同的ID。 谢谢

ActionBarSherlock + Maps + Loaders = java.lang.NoClassDefFoundError

编辑:有关详细的操作方法,请查看我的答案 。 我现在挣扎了两天,希望有人能帮上忙。 我试图用最新的ActionBarSherlock(4.0)与MapView。 我知道这是有问题的碎片,但我不需要他们在这个活动中。 但我需要装载机,看来,使用装载机,我也必须扩大FragmentActivity。 没问题,我想,我们有来自Pete Doyle的android-support-v4-google地图 。 正如在许多SO线程和Google网上论坛上所build议的那样,我使用android-support-v4-googlemaps JAR(实际上是android-support-v13-r7-googlemaps.jar)而不是android-support-v4.jar来构buildABS。 然后我用它作为我的项目的一个库。 现在,我想这样做我的活动: public class BananoutMapActivity extends SherlockFragmentActivity implements LoaderCallbacks<ArrayList<EventItem>>{ 问题: 它编译,但会引发一个运行时错误: E/AndroidRuntime(29159): java.lang.NoClassDefFoundError: ndl.klimczak.bananout.BananoutMapActivity 我三重检查的事情: ActionBarSherlock库项目和我的项目都是针对Google API 4.0.3的 我有<uses-library android:name="com.google.android.maps" /> ,我有它在应用程序标记。 我的项目的构buildpath中也有相同的android-support-v13-r7-googlemaps.jar 我有.BananoutMapActivity声明在我的清单 有趣的是: 当我在一个ICS模拟器上运行它(它出现在2. *模拟器和我的2.3.7设备上的错误),在Honeycomb上它可能工作得太多了,这是使用ACL的问题,我猜 当我删除implements LoaderCallbacks<ArrayList<EventItem>>部分它也可以,但是这样我就不能使用LoaderManager 为什么地球上的NoClassDefFoundError错误,以及如何让我的MapCapableSherlockEnabledFragmentActivity工作的加载器?

我用什么CursorAdapter?

CursorAdapter有3个构造函数。 让看看指南和参考。 1)CursorAdapter(上下文上下文,Cursor c) 这个构造函数已经被弃用了。 这个选项是不鼓励的,因为它会导致在应用程序的UI线程上执行游标查询,因此可能导致响应不佳,甚至导致应用程序不响应错误。 作为替代,使用带有CursorLoader的LoaderManager。 2)CursorAdapter(上下文上下文,Cursor c,boolean autoRequery) 允许控制自动重新查询的构造函数。 build议你不要使用这个 ,而应该使用 CursorAdapter(Context,Cursor,int)。 3)CursorAdapter(上下文上下文,Cursor c,int标志) 推荐的构造函数。 标志用于确定适配器行为的标志; 可以是FLAG_AUTO_REQUERY和FLAG_REGISTER_CONTENT_OBSERVER的任意组合。 FLAG_AUTO_REQUERY 此常量已被弃用 。 这个选项是不鼓励的,因为它会导致在应用程序的UI线程上执行游标查询,因此可能导致响应不佳,甚至导致应用程序不响应错误。 作为替代,使用带有CursorLoader的LoaderManager。 FLAG_REGISTER_CONTENT_OBSERVER。 使用带有CursorLoader的CursorAdapter时,不需要此标志。 CursorAdapter(上下文上下文,Cursor c,int标志)是推荐的构造函数,但可能的标志是2,一个是不推荐的,另一个在使用CursorLoader时不需要CursorAdapter。 如果我用一个CursorLoader的CursorAdapter我必须使用这个构造函数并将零作为标志? 在这种情况下,构造函数是否与#1相同?

ListActivity中的getLoaderManager

我希望在ListActivity中实现一个Loader,但是这个Activity不能识别getLoaderManager。 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); dbHelper = new DBHelper(this,DBNAME,FindPackageName(), TABLE_NAME); sql = dbHelper.getReadableDataBase(); //Log.d("Gaurav","Database Open"); String[] from = new String[]{"word","_id","MyList"}; int[] to = new int[]{R.id.listrow }; simpleCursorLoader = new SimpleCursorLoader(this, TABLE_NAME, from, null, null, null, null, null, null, sql); //query result will be whole database //cursor = sql.query(TABLE_NAME, from, null, null, null, […]

Android Loader不会触发屏幕上的callback

我正在使用一个AsyncTaskLoader 。 我有一个已经实现LoaderCallbacks (支持库)的活动。 我有断点debugging,并放入日志,加载器提供结果,但第二次onLoadFinishedcallback没有触发。 奇怪的是,当我再次旋转时,它会起作用,当我回到起始位置时,从哪个方向开始callback。 在我的活动onResume : LoaderManager lm = getSupportLoaderManager(); Loader loader = lm.initLoader(0, null, new LoaderManager.LoaderCallbacks<String>() { @Override public Loader<String> onCreateLoader(int i, Bundle bundle) { Loader<String> loader = new TestLoader(MainActivity.this); return loader; } @Override public void onLoadFinished(Loader<String> stringLoader, String s) { Log.d(Application.TAG, "OnLoadFinished " + s); doStuff(s); } @Override public void onLoaderReset(Loader<String> […]