这是一个有点奇怪的问题。我正在使用一个扩展 AsyncTaskLoader 的类(真正的交易目标 API 级别 11,而不是兼容性)来接收另一个应用程序组件发送的意图,并通过从本地数据库下载一些数据来响应。我在主要活动的 onStart 方法中使用 LoaderManager 初始化加载程序。
首次启动时,加载程序工作正常。以下是发生的一系列事件: Activity.onCreateLoader - Loader 构造函数 - Loader.onStartLoading - Loader.loadInBackground - Activity.onLoadFinished - Loader.deliverResult
但是,当我退出活动并反复重新启动它时,最终它将按预期停止工作。这将是顺序:Activity.onCreateLoader - Loader 构造函数 - Loader.onStartLoading - 无
在 Loader.onStartLoading 中有一个对 forceLoad 的调用,但在后一种情况下,它似乎没有做任何事情。我搜索过的所有地方似乎都说调用 forceLoad 是一种让加载程序开始执行其工作的近乎防弹的方法,但我一直遇到它根本什么都不做的情况。加载程序的属性在每种情况下都是相同的(isStarted、isAbandoned 和 isReset 无论如何都会给出相同的结果)。坦率地说,我没有发现加载器在工作正常的情况和不加载任何内容的情况之间有什么不同。