问题标签 [android-loader]

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.

0 投票
1 回答
1049 浏览

android - 最好有多个适配器或多个活动?

我有一个分层数据结构。例如,让我们考虑一下我的数据电视节目。每个节目有多个季节,每个季节都有几集。我想要一个显示所有节目的列表。单击节目时,列表将显示该节目的所有季节,单击季节时,列表将显示该季节的所有剧集。

好的,这样就可以了,目前我有一个Activity实现了Loaderthrough LoaderCallbacks。此加载器返回完整的数据层次结构(AKA 所有节目的所有季节和所有剧集)。然后我根据我所使用ArrayAdapter的数据级别使用不同的。

这是处理此类数据的“正确”方式吗?我应该为每个数据级别设置一个加载器、活动和适配器吗?

抱歉,如果这令人困惑,请提前感谢您的洞察力。

0 投票
1 回答
511 浏览

android - Android ExpandableList - 图像加载器 - 简单适配器

我非常需要我们的帮助。

我需要创建一个 expandableListView 并放入更多加载到 url 的图像。

现在我有这个:

我将文本保存到 xml 文件中,但我不知道如何在图像中显示我的图像动态。

这是代码:

在 AsynkTask 之后的 KEY_THUMB_URL 中,我有图像的 url。我需要使用图像加载器进行展示。但我不知道如何在 SimpleExpandableListAdapter 中实现图像加载器。请帮帮我很重要!

我想我可以使用这个:

但我不知道我必须把这段代码放在哪里......请帮忙!

看这张图片的屏幕 http://www.magicfly.it/app/screen.jpg

0 投票
2 回答
7686 浏览

android - 应该使用 Loaders 来访问 Web 服务吗?

据我了解,Loader 框架旨在访问本地存储在 ContentProvider / SQLite 数据库中的数据。我们有一个 CursorLoader 类可以很好地处理这个用例。

但我想知道使用 Loader 框架编写扩展 Loader / AsyncTaskLoader 以访问远程 Web 服务(例如 REST Web 服务)的类是否实用?我一直认为这个框架对于这个用例来说有点过于死板和混乱(缺乏适当的文档)。我更喜欢使用 AsyncTasks / Services 以更常规的方式处理 REST 调用。但是最近发现了一些使用AsyncTaskLoaders的文章,开始疑惑。

那么为什么会有人使用 Loaders 来访问 Web 服务呢?我在这里看到的唯一优势是加载程序会自动保留其结果。之后这里没有 Cursor 可以管理。

0 投票
1 回答
1596 浏览

android - 启动新活动、更改新活动的方向并按下后退按钮后,加载程序不保留

我最近遇到了装载机的问题。我创建了一个重现问题的小项目https://github.com/solcott/loaders-orientation-change

我有一个添加片段的简单 Activity

在我的片段中,我启动了一个加载器,它只返回一个显示在屏幕上的整数。还有一个按钮可以启动一个新的 Activity:

到目前为止,一切正常,我可以更改方向并且显示的整数不会改变。我什至可以开始新的活动,然后点击后退按钮,显示的整数不会改变。

但是,当我导航到新活动时,更改方向并按下后退按钮,整数会增加。我希望它的行为方式与没有方向改变的情况相同。

在 Fragment.onCreate() 中调用 setRetainInstance(true) 会使情况变得更糟。永远不会调用 onLoadComplete 并且根本不显示整数。

有没有其他人遇到过这个问题并找到了解决方法?

0 投票
3 回答
2200 浏览

android - restartLoader 和 onContentChanged 的​​区别

目前,我有一个装载机

有时,由于内容更改,我需要要求加载程序再次重新加载。我会做的。

但是,我想onCreateLoader在内容更改时将一些额外的捆绑信息传递给回调。我意识到通过使用onContentChanged,没有办法这样做。

我能弄清楚的唯一方法是

我想知道,除了传递捆绑的能力之外Loader,使用restartLoader代替的行为是否有任何重大差异?onContentChanged

0 投票
2 回答
1969 浏览

android - 告诉 Android AsyncTaskLoader 检索更多数据

首先让我说这不是关于滚动 ListViews 的问题。我不想知道如何判断用户何时滚动到列表底部,因此请不要给我该问题的答案,或将其标记为重复。

我正在使用扩展 AsyncTaskLoader 的类来使用来自 Web 服务的数据填充 ListView。

最初,我加载了 50 个项目,一切正常。我需要知道如何告诉加载器以增量方式加载接下来的 50 个项目。我了解在 ListView 代码中执行此操作的位置,但我想不出告诉加载程序我想加载更多数据而不重置它并再次加载所有内容的最佳方法。

再次澄清一下,我在这里要解决的问题只是通知加载程序需要加载更多数据。它已经知道在第二次调用 loadInBackground() 时如何加载更多数据,并且 ListView 已经知道在何处/何时通知 Loader,问题是如何

一些相关代码:

0 投票
1 回答
101 浏览

android - 装载机 - 为什么要使用它们?

您能否指出或推荐阅读有关网络/sqlite 请求的使用Loader的优点?

唯一的实现 - CursorLoader说它使用ContentResolver。我读到的 ContentResolvers 与 ContentProviders 结合使用,目的是公开内部应用程序数据。这对我来说似乎有点混乱,因为我只打算加载数据供内部使用。我看不到使用 Loaders 的任何点/好处 - 将greenDao之类的 ORM 工具与普通 AsyncTasks 结合使用有什么不好?

有设计上的好处吗?容易DI?

0 投票
4 回答
4761 浏览

android - Android Volley + Loader 模式?

我有点喜欢 Volley 框架,但我仍然对它有些怀疑。

例如,Volley 是如何与 Loader 模式对齐的?由于它的请求是以异步方式处理的,因此在后台调用它没有多大意义。另一方面,如果我们忽略 Loader 模式,我们将取消加载并重新加载必要的资源,这有点浪费。

Volley 框架如何与 Android 中的 Loaders 一起使用?

0 投票
1 回答
1425 浏览

android - Android:getSupportLoaderManager().getLoader(id) 不返回以前使用的加载器

我在说 Activity A 中有一段如下代码:

观察 1:

用户在显示 Activity A 时更改设备的方向 - previousLoader 不为空。

观察 2:

用户从活动 A 导航到活动 B,在查看活动 B 时更改设备的方向并点击后退按钮 - previousLoader 为空。

我不确定为什么在案例 2 中 previousLoader 为空。使用 loader 的整个想法是避免每次在配置更改期间加载数据。Activity A 有一组片段,它们依赖于先前加载的数据来忠实地工作。由于这个问题,活动正在崩溃。这是一个不同的问题,但我很想知道为什么 getLoader 无法返回以前使用的加载器。

调用的生命周期方法的顺序与预期的一样:即,

OnPause, OnSaveInstanceState, OnStop, OnDestroy, OnCreate, OnStart, OnRestoreInstanceState and OnResume

在我的情况下,活动 B 是任何处理ACTION_VIEW

0 投票
3 回答
1279 浏览

java - Android ListView 项目上的滑动手势

我有一个由 ResourceCursorAdapter 填充的 ListView。我使用加载器机制来查询 ContentProvider 的列表项。我检测到列表项上的滑动手势以对它们执行一些操作。新项目由后台服务添加,因此列表可以动态更改。

一切正常,除非我开始刷卡并发生数据库更改(由于后台服务添加了新行)。在这种情况下,无法正确检测到手势。我注意到 ACTION_CANCEL 被分派到列表项视图,并且对所有可见项执行了 bindView。在 bindView 方法中,我只设置了一些文本 - 我没有更改任何侦听器。

即使后台服务正在添加新项目,如何使手势起作用?也许有一种方法可以防止动作被取消,或者我可以暂停数据库更新,这样它们就不会中断手势。