问题标签 [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 投票
0 回答
2066 浏览

android - 加载器框架和活动生命周期

我真的很喜欢loaders和他们的好处。但是我遇到了一个我不知道如何解决的问题。在我的活动中,我使用 AsyncTaskLoader 从数据库加载一些数据并将光标提供给onLoadFinished(Loader<Cursor> loader, Cursor cursor)活动实现的方法。问题是onLoadFinished()当活动处于状态时不调用onStop()(不是finish()),例如发生来电。

loadInBackground()我只是在后台模拟一些工作

加载程序仍在工作,而活动停止并“滴答”到LogCat. 我查看了AsyncTaskLoader 源

这是否意味着当活动进入前台时我应该手动跟踪加载器状态并重新启动它:如果加载器被取消并且数据仍未发布(即再次执行相同的工作)?有没有办法解决这个问题?

0 投票
0 回答
73 浏览

android - Android:异步加载大量信息

我的应用程序 android 中有一个主页

这个主页需要来自外部数据库的信息,
我认为首先使用 ASyncTask 加载 m 信息,但我认为这不是最好的解决方案
,因为我有 2 个 ListView
第一个 ListView(总是有 2 个子项)查询外部数据库以获取以前的信息,之后需要从 web Image 加载到 ImageView

第二个 ListView(3 个孩子)只需要一个查询即可获得加载数据的所有信息。

但现在,我怎样才能做到这一点?
ASyncTask 可以只为获取第一信息而运行,不是吗?
还有另一种加载所有信息的方法吗?

0 投票
2 回答
2396 浏览

android - 将 1000 的标记添加到 android Googlemap

我正在开发一个基于 GoogleMap 的 android 应用程序。
我需要在地图上显示 1000 个标记。
目前,我从 SQLite 数据库加载器中检索每个标记的纬度和经度,并在public void onLoadFinished(final Loader loader, final Cursor cursor)方法中添加标记。
但是,这种方法会带来非常糟糕的用户体验,因为在我添加标记时应用程序没有响应。
如何将 1000 个标记添加到 googlemap 并保持我的应用程序响应?
因为我必须在主 UI 线程上将标记添加到地图中。

0 投票
2 回答
165 浏览

android - 调用 setText() 后,TextViews 被重新定位。这是一个错误吗?

我遇到了我见过的最奇怪的问题。我有一个基本的两窗格视图。有一个列出药物的窗格,单击药物会弹出第二个窗格,其中包含有关该药物的详细信息。细节片段应该是这样安排的:

据我所知,XML 代码证明了这一点:

我使用以下代码设置要由每个字段显示的字符串:

但是当我运行程序时,最奇怪的事情发生了。即,TextViews 以某种方式重新排序。而不是所需的顺序,我以某种方式得到

谁能告诉我为什么会发生这种情况?

编辑:注释掉对 setText() 的各种调用会导致 TextViews 以正确的顺序显示,尽管是硬编码的文本,而不是我想要的。

再次编辑:原来我需要做的就是清理项目。现在我知道了。

0 投票
1 回答
185 浏览

android - 具有远程数据的 android 应用程序的最佳方法是什么?

我开发了简单的信息应用程序,显示来自远程主机的数据。数据通过 json 或 xml 格式的 http 来。什么是最好的现代方法:服务、内容提供者、加载器或简单的异步任务?

0 投票
2 回答
4086 浏览

android - 何时使用 Android 加载器

装载机

  1. 监控数据源提供新结果
  2. 配置更改后:无需重新查询数据

我阅读了有关Loaders的 android 指南。我阅读了 Alex Lockwood 4 部分教程。也测试了他的示例应用程序。尝试阅读 Google App for I/O 13,有一个 Stream 功能,阅读它的代码发现它使用 Loaders,因为它提供代码来创建一个StreamLoader. 这是 我想他们用它来监视新数据并将它们添加到他们的视图中的链接。

Alex 的应用程序也是如此。有一个观察者,当有新的数据条目时会触发 UI 的刷新。

到目前为止,在我看来,Loaders 是“livescore”应用程序的理想选择。当有新的更新(这意味着新的数据条目)时,它会出现在您的屏幕上。

也许像推特这样的东西。为您提供新消息,自定义Observer通知更改,自定义Loader带来数据和适配器来显示它们。无需“拉动刷新”。但话说回来,Twitter 有自己的 RESTful API,可以做同样的工作。不需要指向新数据的指针。(不知道他们是如何做到的,但我猜想以某种方式将新数据“推送”到您的设备)。

所以我的问题是:

当我们想要观察数据源 更改视图以显示新数据时,加载器是最佳选择?

是否有任何示例/应用程序我可以检查处理该逻辑:监视数据源-> 获取数据-> 刷新 UI

任何典型案例(比如我之前提到的“livescore”),当我们必须处理它们时,我们必须选择加载器?

Loaders 的第二部分(配置更改,保留数据)我认为它很清楚。当用户旋转设备时,没有人想重新下载图片库。

谢谢并原谅我的困惑

0 投票
1 回答
490 浏览

android - Android Loaders 不调用 onLoadFinished

在 ViewPager 管理的片段中使用 AsyncTaskLoaders 时遇到问题。配置是这样的:

Fragment#1 - 从磁盘加载图片的加载器 Fragment#2 - 从磁盘加载自定义对象的加载器 Fragment#3 - 从网络加载 JSON 对象的加载器 Fragment#4 - 作为 #3

如果我在 Fragment#1 中省略了 Loader,一切正常,如预期的那样。但是,如果我尝试在 Fragment#1 中使用 Loader,所有其他 Loader 都不会调用每个片段中指定的 onLoadFinished 回调。我放了一些日志,我看到所有其他加载程序都正确处理了 loadInBackground() 方法,但在那之后它们处于重置状态。

也许有最大数量的同时可用的加载器,或者加载的位图大小有问题?

每个片段都需要在onCreateView()回调中初始化加载程序,因为

并以此实现LoaderManager.LoaderCallbacks

第一个 Loader(这可能是其余三个失败的原因)代码是

}

0 投票
2 回答
8030 浏览

android - 使用自定义加载器时未在 ViewPager 片段上调用 ​​onResume()

精简版:

我有一个片段,它维护一个ViewPager用于显示其他两个片段的片段,我们称它们为FragmentOneand FragmentTwo。启动应用程序时FragmentOne可见并且FragmentTwo不在屏幕上,只有在向左滑动视图时才可见。

通常onStart()onResume()一旦应用程序启动,就会立即为这两个片段调用。

我遇到的问题是,当FragmentOne开始自定义Loader时,直到它完全可见才被onResume()调用。FragmentTwo

显示问题的屏幕截图

问题:

这是我的代码问题还是 Android 支持库中的错误?(图书馆的第 12 版没有出现问题,它从第 13 版开始。)

如果这是修订版 13 和 18 中的错误,是否有解决方法?

我的习惯有问题Loader吗?

长版:

我已经构建了一个示例应用程序来演示该问题。我试图将代码减少到最低限度,但仍然很多,所以请多多包涵。

我有一个MainActivity加载一个MainFragment创建一个ViewPager. ViewPager 由 Fragment 而不是 Activity 维护,这对我的应用程序很重要。

MainFragment创建 a FragmentPagerAdapter,然后创建片段FragmentOneFragmentTwo

让我们从有趣的部分开始,这两个片段:

FragmentOne是一个ListFragment使用自定义Loader加载内容的:

Loader似乎是导致问题的原因。注释掉initLoader 行使片段生命周期再次按预期工作。

FragmentTwo根据是否onResume()被调用改变其内容:

这里是无聊的其余代码。

MainActivity

布局activity_main

MainFragment

布局frag_master

0 投票
1 回答
612 浏览

android - 从 JSON 填充 ListFragment

我有一个扩展 ActionBarActivity 并实现 ActionBar.Listener 的 Activity。它就像一个视图寻呼机。在里面我有 3 个 ListFragment (组织在 3 个选项卡中)。现在,我需要使用来自后端的数据填充片段。你能帮我组织一下代码结构吗?

  1. 我应该使用 AsyncTask 还是 Loader?将它们放在单独的公共课程中会更好吗?

  2. 使用保留的片段通过标签滑动和配置更改来保存数据是个好主意吗?

  3. 我想到的结果是一个大的加载器图像,放置在片段的中心等待数据。一段时间后它消失并显示 ListFragment 行内的记录。我应该在哪里调用 AsyncTask(假设使用此类)?活动中?在每个片段里面?

  4. 哪个是与活动正在调用 onPostExecute 并且数据已准备好使用的片段进行通信的正确方法?

我对此感到很困惑,我只需要一个好的开始方式,似乎每个人都以不同的方式处理这个问题,我不知道哪个是最好的......

0 投票
1 回答
891 浏览

android - Android 无法将光标投射到光标加载器

我有一个我正在开发的安卓应用程序,它的光标加载器有问题。下面是代码和logcat。有人对如何修复有任何建议吗?该应用程序使用数据库,这是主屏幕。该应用程序还使用照片和地图。

代码:

日志猫: