问题标签 [asynctaskloader]

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 投票
0 回答
111 浏览

android - 使用加载器在片段列表视图中显示来自 SQLlite 的数据

我的应用程序实现是一个活动,它使用 Viewpager 和不同的片段在屏幕上显示,具体取决于选项卡选择或用户滑动屏幕。我附上了截图示例。在此处输入图像描述

现在我想在列表视图中从我的数据库中加载这些片段的数据。我正在阅读有关加载器的信息,但不确定如何实现 - 是使用使用内容提供程序的 Cursorloader 还是使用 Asynctaskloader。我想避免使用 Cursorloader,因为它要求使用内容提供程序,但是让我知道使用它而不是 Asynctaskloader 是否仍然有意义。另外,我可以在活动中使用单个加载器并使用这个加载器在不同的片段中显示数据吗?或者我应该为每个片段实现一个加载器?在考虑使用加载器之前,我以前使用过 Simplecursoradapter 来显示结果,但我听说使用加载器进行异步操作更好。但是让我知道 Simplecursoraapter 是否足以进行轻量级操作。

我知道我问了太多问题,但我是初学者,在这一点上有点困惑。请帮忙。

0 投票
1 回答
116 浏览

android - Android Loaders:数据源中的数据内容何时以及为何会发生变化?

我已经读过它Loader监视底层数据源的变化,并在新数据可用时加载它。

我的问题是,数据源中的数据什么时候会改变?任何示例将不胜感激。

  • 例如,假设一个应用程序使用用户输入的搜索查询来执行搜索,搜索结果以数组的形式返回。那么既然我们已经执行了一次搜索,并且已经在数组中接收到了搜索结果,那么在什么情况下,返回数组中的这些数据会发生变化(由 监控Loader)?
0 投票
0 回答
35 浏览

android - 一次性通知多个游标加载器

我有一个应用程序,其中包含三个活动 A、B、C,每个活动都使用 asynctaskloader 从数据库中显示列表视图。

我为广播接收器中的最新活动维护加载程序的引用。当有数据更改时,我会调用onContentChanged相应的加载器来更新,listView但如果我处于活动状态BC父活动中的列表视图没有得到更新。

我知道我可以单独维护每个加载器的参考并调用onContent它们中的每一个,但很好奇是否可以一次性更新所有加载器?在 loaderManager apis 中没有看到任何相关内容。

0 投票
0 回答
566 浏览

android - 如何从不是活动的类中调用 getLoaderManager()?

我有一个 Listview 的 fagment,里面有一个 ImageView 和一个 Textview。所以当片段创建时,我调用一个 AsyncTaskLoader 来填充它。在 onLoadFinished 方法中,我为列表设置了适配器。问题是我无法访问 getLoadedManager :S

这是代码:这是第一个任务的 onLoadFinishedMethod

适配器:

'Entrada' 类

第二个任务:

}

0 投票
1 回答
480 浏览

android - 在活动获取数据后显示片段

我在我的活动中获取多个片段所需的数据。返回数据后,我创建片段。我是通过 AsyncTask 执行此操作的,但如果在屏幕旋转后返回数据或应用程序在后台运行,它会导致偶尔崩溃。

我阅读并认为解决方案是使用 AsyncTaskLoader。假设如果您的活动消失了,它不会回调,因此应该解决这些错误。但这现在每次都会崩溃,因为“无法在 onLoadFinished 内执行此操作(添加片段)”。

我该怎么处理这个?我不希望我的每个片段都必须获取数据,所以看起来活动是放置代码的正确位置。

谢谢!

编辑 1

这是相关的代码。我认为问题不在于代码本身,而在于我的整个方法。例外很明显,我不应该创建片段。我只是不确定如何做到这一点。

编辑 2

我的新策略是使用带有 ResultReceiver 的 IntentService。我在 onPause 中取消了回调,因此不存在我的活动在不应该被击中的危险。这感觉比必要的要笨重得多,但是 AsyncTask 和 AsyncTaskLoader 似乎都没有我需要的一切。在这些回调方法中创建片段似乎也不会打扰 Android。

0 投票
3 回答
513 浏览

android - 在配置更改期间调用的 loadinBackground()

我正在制作一个显示邮政编码列表的应用程序(在 ListView 中),当我单击它时,它会使用 OpenWeather API 向我显示详细的天气报告。邮政编码列表存储在 SQLite 数据库中,要从中检索数据,我使用的是 AsyncTaskLoader。数据显示正确。问题是在配置更改期间,正在调用 loadinBackground() 方法,这不应该发生。

这是Loader Callbacks的实现

这是我在方向改变时的日志

谢谢,

0 投票
0 回答
828 浏览

android - 在 ExpandableListView android 中从服务器加载子视图数据

我正在使用ExpandableListview从服务器加载动态数据。

每个Group Header都有不同的Child Layout

单击Group HeaderChild view服务器加载数据。我正在显示从服务器检索到的图像,但它没有按预期工作

并非所有图像都显示在Child view

后台任务

获取子视图代码...

0 投票
1 回答
1591 浏览

android - 加载器的生命周期是什么?

背景

我正在努力通过支持横向模式来使应用程序变得更好。我经常使用的一件事是Loaders,或者更具体地说是AsyncTaskLoaders

与AsyncTask相反,使用 Loaders 允许您继续执行后台任务,即使由于方向更改而重新创建活动也是如此。

问题

我想问一下Loaders的生命周期:

  1. 他们什么时候得到 GC-ed ?我是否必须跟踪它们,如果里面有位图,我应该尽快放弃它吗?他们是否可能仅在活动真正被破坏(而不是因为配置更改)后才获得 GC?
  2. 我注意到他们有被停止的状态。这是否允许我暂停它们?
  3. 如果 #2 为真,我将如何实现可以在自身某些点上暂停的加载器?
  4. 片段也可以有Loaders吗?正如我所注意到的,它仅用于活动。
  5. 如果#4 为假,在导航抽屉的设计模式中使用加载器替换容器中的片段的推荐方法是什么?
  6. AsyncTaskLoader 可以像 AsyncTask(或线程)一样被中断吗?我查看了它的代码和 API,但我找不到它。我也试图找到一种解决方法,但我没有成功。
  7. 如果#6 是假的,还有其他选择吗?例如,如果我知道加载器不需要加载某些东西,我可以立即停止它。我能想到的一种方法是设置一个标志(可能是 AtomicBoolean,以防万一),它会告诉它停止,并有时检查这个值。问题是我甚至需要在它使用的函数中添加它,而更简单的方法是调用“Thread.sleep(0)”或类似的东西。
  8. 有没有什么地方可以解释 Loaders 的生命周期?
  9. AsyncTaskLoaders 是否同时一起工作,或者它们是否像 AsyncTask 的默认当前行为一样,仅在单个线程上运行?
0 投票
2 回答
1077 浏览

android - 如果我已经使用 AsyncTask,如何避免主线程异常的网络?

在我看来,我并没有真正从 MainActivity调用 URL、网络操作。

  • 我确实在另一个类 ProcessData 中调用 url.connect()
  • 我确实使用 doInBackground()
  • 我确实用 AsyncTask 扩展 ProcessData 类

但异常仍然发生:

网络主线程异常仍然发生,我阅读了其他 SO 帖子。我可以将我的 http 连接代码包装到新线程中,但我想找出问题所在

0 投票
1 回答
90 浏览

android - 如何从片段类调用自定义异步加载器

我正在尝试使用AsyncTaskLoader从服务器加载数据,然后稍后将其放入列表视图中。我在 YouTube 上遵循了本教程。但是,当我尝试从另一个扩展片段的类中调用加载器时,加载器将不接受上下文。

我试过了:

  1. getActivity()
  2. getActivity().getApllicationContext()

都没有奏效。