- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
使用 android-support-v4.jar 和 FragmentActivity(此时没有 Fragment)
我有一个 AsyncTaskLoader,我开始加载它,然后在后台线程仍在运行时更改方向。在我的日志中,我看到响应来自后台请求。响应完成,我希望 onLoadFinished() 被调用,但它永远不会。
作为一种故障排除方法,在 Manifest 中,如果我设置 android:configChanges="orientation"onLoadFinished() 会按预期调用。
我的 Activity 实现了加载器回调。在 LoaderManager.initLoader() 的源代码中,我看到如果加载器已经存在,则新回调设置为 LoaderInfo 内部对象类,但我看不到再次调用 Loader.registerListener() 的位置。 registerListener 似乎只在调用 LoaderManagerImpl.createAndInstallLoader() 时被调用。
我怀疑由于 Activity 在方向更改时被销毁并重新创建,并且由于它是回调的监听器,因此新的 Activity 未注册以得到通知。
谁能确认我的理解以及在方向更改后调用 onLoadFinished 的解决方案是什么?
最佳答案
Nikolay 发现了问题 - 谢谢。
我从 onResume() 调用 initLoader。 Android 文档指出:
"You typically initialize a Loader within the activity's onCreate() method, or within the fragment's onActivityCreated() method."
在处理配置更改生命周期时,“通常”比我更强调一点。
我将 initLoader 调用移至 onCreate() 并解决了我的问题。
我认为原因是在 FragmentActivity.onCreate() 中,从 LastNonConfigurationInstance 中提取了一组 LoaderManager,而在 FragmentActivity.onStart() 中,有一些关于 Loaders 和 LoaderManagers 的启动工作。在调用 onResume() 时,事情已经在进行中。当 Loader 第一次需要实例化时,从外部调用 initLoader onCreate() 仍然有效。
关于android - 如果在 AsyncTaskLoader 运行期间发生方向更改,则不会调用 LoaderCallbacks.onLoadFinished,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7166363/
我正在使用 LoaderManager.LoaderCallbacks在我的 FragmentActivity . 我在 onResume() 中调用: getSupportLoaderManager
嗨,请有人帮忙,我正在尝试创建一个基本的加载程序。我见过的有关加载器的所有文档都涉及以下内容: public class MyActivity extends Activity
我创建了一个从 AsyncTaskLoader 派生的加载器。它在 99% 的时间都有效,但存在一种极端情况,即在 AsyncTaskLoader.loadInBackground() 成功返回后未调
我注意到使用 Android 加载器和 fragment 的奇怪情况。当我在方向更改后调用 LoaderManager.initLoader() 时,不会调用 onLoadFinished (尽管文档
我在项目中遇到了 LoaderCallbacks 问题。我已经在 android studio 中实现了 LoaderManager 。每当用户按下搜索按钮时,我都会尝试重新启动加载程序。 publi
我正在使用 FragmentPagerAdapter 来实现选项卡式界面。我的第 0 个 fragment 在创建时创建了一个加载器,并尝试在 onActivityCreated() 中重新连接到加载
我正在对 AsyncTaskLoader 进行一些实践阅读,因此我可以使用该技术来加载联系人列表。代码唯一有效的时间是当我从扩展 Fragment 的类实现回调时如 MyLoader extends
我有一个使用两个加载器的 Activity 。他们每个人都返回不同类型的数据。要从单个加载器获取数据,只需实现 LoaderCallbacks进入 Activity 。我想我可以实现 LoaderCa
对于提供 LoaderManager 的 Activity 的生命周期,是否有关于何时调用 LoaderCallbacks.onLoadFinished() 的规则? 我从 Android 文档中知道
我是安卓新手。我想使用 loaderCallbacks 获取 contacts 数据我写了一些代码,但这里有一些问题,我不知道为什么会这样你能检查一下吗? package com.example.ar
我有 1 个 Activity 和 2 个 fragment 。这两个 fragment 都使用自定义 AsyncTaskLoader 从 Web 服务获取一些数据,并且由于我使用的是加载器,它应该跨
我有一个 DialogFragment,它为 setMultiChoiceItems 使用 Cursor。此 Cursor 是在 LoaderManager 的帮助下获得的。 使用 onCreateD
我在尝试从实现 LoaderCallbacks 接口(interface)的 Fragment 的 onLoadFinished 方法中显示 DialogFragment 时收到异常。基本上我使用 L
使用 android-support-v4.jar 和 FragmentActivity(此时没有 Fragment) 我有一个 AsyncTaskLoader,我开始加载它,然后在后台线程仍在运行时
我是 Android 应用程序开发的新手。我正在阅读 ToDo教程。本文基于android SDK 3.0及以上版本,但我使用的是sdk 2.1,其中不包含'LoaderManager'类。我想知道
我卡在我的代码中,我正在使用抽屉布局,而在 fragment 布局上,我想在从数据库中获取人员列表后显示它。在 fragment 类中,当我使用游标适配器查询并将其设置为列表适配器时,错误显示: 类型
我在 ListFragment 中使用 CursorAdapter 来加载和显示评论列表。 public class CommentsFragment extends ListFragment imp
我在关注 guide 时遇到问题在 Android 中使用 SQLite。我正在使用 ListFragment而不是 ListActivity (如示例中),所以我有 ListFragment实现Lo
我是一名优秀的程序员,十分优秀!