问题标签 [android-loadermanager]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 数据库全局实例
所以我想为所有应用程序活动创建一个数据库实例。我找到了以下代码:
我不明白什么时候可以关闭 SQLiteDatabase 实例。
android - LoaderManager 的范围是什么?
在 LoaderManager 中识别 Loader 时,您使用唯一的 id。我在问这些 id 必须有多独特。
每个 Activity 和 Fragment 都有自己的 LoaderManager 吗?片段是否使用它们附加到的 Activity 的 LoaderManager?应用程序是否只有一个 LoaderManager?
如果您能告诉我如何更改您正在使用的 LoaderManager,则可以加分。如果我希望我的 Activity 中的每个片段都使用相同的 LoaderManager(其中一些正在提取相同的数据并且共享 Loader 会很好),这可能吗?
android - Android中关于SQLite数据库游标的几个问题
为了在我的应用程序中实现数据库访问,我遵循了Lars Vogel 教程,但我对一些事情感到非常困惑......
每次调用
fetchTodo
新游标时都会创建并返回。将前一个光标留给垃圾收集器。所以,如果我不使用startManagingCursor
甚至不使用CursorLoader
,我应该在完成后调用.close()
光标上的 a 吗?当然,超出fetchTodo
范围,例如:光标 cursor = mNotesAdapter.fetchTodo(); // 做点什么... cursor.close();
我已经完成了这个游标,并且将在下一次获取时创建新的游标,我应该像这样关闭它还是应该将它留给垃圾收集器?虽然我认为我在谈论两件完全不同的事情......重点是,我应该像上面的例子那样关闭它吗?
Cursor
也有一个.deactivate()
方法,文档说它使用更少的资源(比活动游标)。我应该什么时候使用这个?例如,在我的应用程序中,我有一个ListActivity
通过 a 填充的 aSimpleCursorAdapter
(为此的代码初始化只调用一次)。正在使用的游标是一个类成员变量,因为我需要它在填充列表的方法之外。当从数据库中删除某些内容时,我需要它来重新查询数据库。但是在删除记录之前,这是用户操作并且可能需要一段时间才能发生,我是否应该同时停用光标?因为当我再次调用时它会再次激活.requery()
。还是SimpleCursorAdapter
因为光标不活动而停止工作?
编辑:我刚刚测试了这个,发现deactivate()
设置光标适配器后我无法调用。如果光标未处于活动状态,则列表将为空,因此只要显示 ListActivity,它就需要保持活动状态。最后,我们应该让它StartManagingCursor
处理它。或者新的CursorLoader
.
- 我知道
startManagingCursor
/stopManagingCursor
已被弃用,但我不是针对 Honeycomb(至少目前是这样),我现在不想处理新CursorLoader
的。但是在上面的教程中,startManagingCursor
到处都使用,但从stopManagingCursor
不调用一次。为什么不?Android 是否以自己的方式处理这个问题?有什么情况我应该打电话stopManagingCursor
吗?
android - 我必须使用 Fragments 来获取 LoaderManager 吗?
根据一些文档,我可以在 Activity 或 Fragment 中使用 Loader,但兼容性包显示只有 FragmentActivity 具有 getLoaderManager() 方法。
由于旧的托管游标已被弃用,我们必须使用游标加载器。那么为什么要把这个数据管理功能与 UI 小部件的选择联系起来呢?对我来说完全是无稽之谈。
谢谢P。
android - ListActivity 中的 getLoaderManager
我希望在 ListActivity 中实现 Loader,但该活动无法识别 getLoaderManager。
android - 在 android 2.2 中使用光标适配器和内容提供程序的正确方法是什么
我很困惑,我需要你的帮助。我尝试按照 Virgil Dobjanschi 在 Google IO 2010 上的“开发 Android REST 客户端应用程序”讲座中给出的说明进行操作。不幸的是,我找不到在 Content Provider 和 Cursor Adapter 之间实现有效通信的方法。
我在这里遇到的问题与光标适配器有关,所以我们假设内容提供者一切正常。例如,让我们尝试使用 Contacts ContentProvider 而不是我自己的。我尝试了最简单的解决方案——任何 ContentProvider(假设为联系人,由 SDK 提供)和 SimpleCursorAdapter。问题是 SimpleCursorAdapter 包含来自 Contacts 的光标的构造函数已被弃用。文档说:
此构造函数已弃用。
不鼓励使用此选项,因为它会导致在应用程序的 UI 线程上执行游标查询,从而导致响应速度不佳甚至应用程序无响应错误。作为替代方案,将 LoaderManager 与 CursorLoader 一起使用。
我的想法是:“好吧,我不会使用它。我会尝试用 CursorLoader 代替 LoaderManager,因为他们正在建议我。” 所以我去LoaderManager 文档站点查找使用示例以及我发现了什么?使用 SimpleCursorAdapter 构造函数的完美示例。是的,我也想避免因为它已被弃用。
我能找到的所有教程都在使用这个已弃用的构造函数。谁能给我一个很好的答案,避免使用它的正确方法是什么?还是我太在乎它了?我只想学习好的做法...
java - 使用 11 之前的 Loader em API 版本
我正在使用CursorAdapter
and ContentProvider
,并且我想使用CursorLoader
,因此我将项目重新配置为以 API 11 为目标并将 min-sdk-ver 设置为 7。但是,当Activity
调用Activity
使用CursorLoader
. 错误是NoClassDefFoundError
通过传递的IllegalStateException
。
我的问题是,即使我们拥有相同的配置,我们是否可以在以前的 Android 版本中使用 Honeycomb API?
android - 如何在 ListActivity 中获取 LoaderManager
我正在使用兼容性包在 API 级别 < 11 中实现 CursorLoader 根据文档和这个答案以及这个精彩的教程,我已经导入了支持包并实现了LoaderManager.LoaderCallbacks,但接下来我必须调用:
并且为此必须扩展FragmentActivity,然后从Activity Context调用,但我已经扩展了ListActivity,并想进行静态调用以获取LoaderManager,如下所示:
显然,这是一种让LoaderManager < 11 的方法,这就是文档所说的:
要管理您的片段和加载器,您必须使用 FragmentActivity.getSupportFragmentManager() 和 FragmentActivity.getSupportLoaderManager() 方法(而不是 getFragmentManager() 和 getLoaderManager() 方法)。
但它给出了这个编译时错误:
FragmentActivity 的代码getSupportLoaderManager() 在这里不是静态的,这解释了错误,但为什么 Doc 显示静态调用...我现在很困惑...
请帮忙!
android - CursorAdapter 和 FLAG_REGISTER_CONTENT_OBSERVER
在我的 ListView Activity 中,使用 LoaderManager 管理光标并且还有一个自定义 CursorAdapter
注册 Adapter 时,会传递一个空游标,由 LoaderManager 管理
现在需要为此 CustomCursorAdapter 实现 SectionIndexer。我的问题是,在 CustomCursorAdapter 构造函数中,光标最初将为空,我怎么知道何时准备好光标。
有一个
可用于在 CursorAdapter 中获取光标的方法,但在哪个回调方法中我确定 LoaderManager 已完成对 Cursor 的数据加载准备好进行操作
谢谢
android - 数据更改后 CursorLoader 不更新
我创建了一个小型应用程序,试图了解LoaderManager
and类的功能CursorLoader
。
我已经LoaderCallbacks<Cursor>
在我的FragmentActivity
-class 上实现了,一切正常,除了当我通过ContentResolver.update()
or ContentResolver.insert()
-methods 更新我的数据时,onLoadFinished()
没有调用,因此我的数据没有更新。
我有一个自定义的 ContentProvider,我想知道问题是否出在我的 ContentProvider 上,没有通知数据已更改或其他原因。