- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我想弄清楚我是否在加载程序方面做错了什么。我正在使用支持库,并且我有一个 fragment ,它在 onCreate() 调用 initLoader() 将自身设置为 LoaderCallbacks,但是在旋转时,它在 onLoadFinished() 中接收结果两次,一次是调用 init 的结果(并且它已经拥有数据),并且由于 FragmentActivity 循环遍历 onStart() 中的所有加载器并传递结果,因为它已经拥有数据。
如果我只调用一次 init(在 Fragment 首次启动时),它不会将自己设置为 Loader 的回调,因此它根本不会收到对 onLoadFinished 的调用。似乎 onLoadFinished 应该只被调用一次,因为一些昂贵的事情可能会在 onLoadFinished() 中完成(例如清除列表适配器等),所以我只是想弄清楚这是一个错误还是我是只是在错误的时间调用 init 或其他什么。
有人对此问题有任何见解吗?
最佳答案
我遇到了类似的问题,原因是我的代码中有 initLoader
和 restartLoader
。根据用户的操作,我的查询可能会更改,因此我需要重新启动加载程序。
解决方案是只使用 restartLoader
,即使在 onResume
回调方法中将 initLoader
替换为 restartLoader
。
关于android - OnLoadFinished() 调用了两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14719814/
我创建了一个简单的 Activity它实现了 LoaderManager.LoaderCallbacks界面。OnCreateLoader()很简单: @Override public Loader
我遇到了加载程序的问题。 我有一个 Activity ,它显示从本地数据库检索到的记录列表。当 Activity 开始时,记录会通过 LoaderManager.initLoader() 方法自动加载
昨天我尝试编写我的内容提供程序并对其进行测试。不幸的是,这段代码: if(loader.getId() == 1) getContentResolver().insert(Uri.par
我想弄清楚我是否在加载程序方面做错了什么。我正在使用支持库,并且我有一个 fragment ,它在 onCreate() 调用 initLoader() 将自身设置为 LoaderCallbacks,
这是我的代码: var system = require('system'); var page = require('webpage').create(); var server = require
我正在尝试使用游标加载器使用数据库中的数据填充我的用户界面。 下面是我的 onCreateLoader() @Override public Loader onCreateLoader(int id
我正在使用 Phantomjs 检查我的应用程序。我正在查看的页面包含很多组件,并且由 Angularjs 提供支持。我的测试服务器很慢。在 onLoadFinished 事件中,我使用渲染对网页进行
我有一个 Android 应用,它有一个我经常更新的 Content Provider。为了加载上述数据的列表,我使用了 LoaderManager。 在详细信息页面上,我也使用 LoaderMana
目前我有一个查找表中第一行的查询。在 OnCreateLoader 方法中使用 Loader 调用此查询。 @Override public Loader onCreateLoader(int id,
在首选项更改监听器中,我将其设置为使用 Loader 下载新数据,然后填充 ListView,但只有 onCreateLoader()当我更改首选项时调用函数,onLoadFinished() 回调函
我想知道如何使用 CursorLoader 来填充屏幕上的小部件。所有在线示例仅适用于使用适配器,效果很好。我需要的是一种可靠的方法来从 Cursor 和 UI 线程更新屏幕中的 View ,并且不会
我在一项 Activity 中使用了一个装载机。我能够启动加载程序并调用 onLoadFinished。当我更新数据并在加载程序中调用 onContentChanged 时,我看到 loadInBac
我创建了一个从 AsyncTaskLoader 派生的加载器。它在 99% 的时间都有效,但存在一种极端情况,即在 AsyncTaskLoader.loadInBackground() 成功返回后未调
我正在尝试使用 LoaderCallBacks 从数据库加载数据。但是不会调用 loadercallbacks 中的 onLoadFinished 函数。因此,正如您在日志中看到的那样,返回的行数为
我注意到使用 Android 加载器和 fragment 的奇怪情况。当我在方向更改后调用 LoaderManager.initLoader() 时,不会调用 onLoadFinished (尽管文档
我正在创建一个新的示例 android 应用,其中包含一个 Activity 和许多 fragment 。 首先我正在启动“OverviewFragment”(我的仪表板),它应该显示一些基本信息。我
我正在尝试使用 AsyncTaskLoader 在后台加载数据以填充详细 View 以响应选择的列表项。我已经让它大部分工作了,但我仍然有一个问题。如果我在列表中选择第二个项目,然后在第一个选定项目的
我有一个事件,它使用加载器回调从服务器加载数据列表。我必须将数据列出到一个扩展的片段中 SherlockListFragment 我尝试使用提交片段 Fragment newFragment =
我正在使用 LoaderManager.LoaderCallbacks 加载数据,问题是 onCreateLoader 正确获取的 data 未委托(delegate)给 onLoadFinished
我正在实现 LoaderManager.LoaderCallbacks 以访问我的应用程序的数据库并填充 ListView。哪些线程将调用我的 onCreateLoader() 和 onLoadFin
我是一名优秀的程序员,十分优秀!