gpt4 book ai didi

android - 你可以使用服务中的 LoaderManager 吗?

转载 作者:IT王子 更新时间:2023-10-29 00:01:42 29 4
gpt4 key购买 nike

我有一个使用自定义加载器和光标设置的数据加载系统,该系统在 Activity 和 fragment 中运行良好,但服务中没有加载器管理器(我可以找到)。有谁知道为什么 LoaderManager 被排除在服务之外?如果没有,有没有办法解决这个问题?

最佳答案

Does anyone know why LoaderManager was excluded from Service?

如另一个答案所述,LoaderManager明确设计用于管理 Loaders通过 Acivities 的生命周期和 Fragments .从 Services无需处理这些配置更改,使用 LoaderManager没必要。

If not is there a way around this?

是的,诀窍是您不需要使用 LoaderManager ,您可以使用您的 Loader直接,它将为您处理异步加载数据并监控任何基础数据更改,这比手动查询数据要好得多。

首先,创建、注册并开始加载您的 Loader当您的 Service已创建。

@Override
public void onCreate() {
mCursorLoader = new CursorLoader(context, contentUri, projection, selection, selectionArgs, orderBy);
mCursorLoader.registerListener(LOADER_ID_NETWORK, this);
mCursorLoader.startLoading();
}

接下来,执行 OnLoadCompleteListener<Cursor>在您的Service处理负载回调。

@Override
public void onLoadComplete(Loader<Cursor> loader, Cursor data) {
// Bind data to UI, etc
}

最后,别忘了清理你的 LoaderService被销毁了。

@Override
public void onDestroy() {

// Stop the cursor loader
if (mCursorLoader != null) {
mCursorLoader.unregisterListener(this);
mCursorLoader.cancelLoad();
mCursorLoader.stopLoading();
}
}

关于android - 你可以使用服务中的 LoaderManager 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8696146/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com