gpt4 book ai didi

android - restartLoader 和 onContentChanged 的​​区别

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:00:40 26 4
gpt4 key购买 nike

目前,我有一个装载机

@Override
public Loader<List<HomeMenuRowInfo>> onCreateLoader(int arg0, Bundle bundle) {
return new HomeMenuRowInfosLoader(this.getSherlockActivity());
}

有时,由于内容更改,我需要让加载器重新加载。我会这样做。

this.getLoaderManager().getLoader(0).onContentChanged();

但是,我想在内容更改时将一些额外的包信息传递给 onCreateLoader 回调。我通过使用 onContentChanged 意识到,没有办法这样做。

我唯一能想到的就是

this.getLoaderManager().restartLoader(0, bundle, this);

我想知道,除了传入的能力之外,使用 restartLoader 而不是 onContentChangedLoader 行为是否有任何重大差异 bundle ?

最佳答案

我认为,主要区别在于 restartLoader 方法会破坏具有相同 ID 的旧加载器并启动一个新加载器,而 onContentChanged 方法要么强制加载器加载 (forceLoad) 或简单地设置一个标志,指示在加载程序停止时内容已更改。在第二种情况下,加载程序的“所有者”在内容更改后仍然负责其(重新)加载。我假设这是由 loaderManager 自动完成的,就像在 restartLoader 的情况下一样。

如果您决定使用 restartLoader 方法,您应该牢记旧加载器的破坏以及对您的应用程序可能产生的影响,例如缓慢的重新初始化等。

您可以查看方法文档以获取更多信息 - restartLoaderonContentChanged

另请注意,旧加载器新加载器完成其工作时被销毁

关于android - restartLoader 和 onContentChanged 的​​区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16728237/

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