java–Android– 游标加载器如何知道底层数据集已经改变?

java–Android– 游标加载器如何知道底层数据集已经改变?,第1张

概述我正在尝试学习Android编程,并且一直在使用UdacitySunshine应用程序.有些事让我感到困惑.我有一个内容提供程序,它执行插入,删除,选择等,我有一个游标加载器,它也是一个片段,我有一个游标适配器,除了加载器如何知道数据已更改之外,大部分都是有意义的.在内容提供程序的更新方法

我正在尝试学习Android编程,并且一直在使用Udacity Sunshine应用程序.

有些事让我感到困惑.我有一个内容提供程序,它执行插入,删除,选择等,我有一个游标加载器,它也是一个片段,我有一个游标适配器,除了加载器如何知道数据已更改之外,大部分都是有意义的.

在内容提供程序的更新方法中,它执行此 *** 作,我假设它正在通知数据已更改的内容:

if (rowsUpdated != 0) {        getContext().getContentResolver().notifyChange(uri, null);    }

加载器在onCreateLoader方法中设置:

return new CursorLoader(            getActivity(),            weatherForLocationUri,            FORECAST_ColUMNS,            null,            null,            sortOrder    );

对于用于更新的加载,URI是不同的,但是加载器如何知道数据在下面发生了变化?

适配器在当前光标上有一个句柄,它在onLoadFinished中设置时被加载:

mForecastAdapter.swapCursor(data);

最后,列表视图本身在游标适配器上有一个句柄:

mListVIEw.setAdapter(mForecastAdapter);

我只是不知道如何通过这种机制,加载器知道数据已经改变,以及它如何通知适配器指示它重绘UI?

如果我对此有任何理解是错误的,请纠正我!

解决方法:

游标将自己注册为死者的通知,这意味着当根URI被通知更改时,URI的死者也会被通知,死者可以是任何具有其他路径信息的东西.

总结

以上是内存溢出为你收集整理的java – Android – 游标加载器如何知道底层数据集已经改变?全部内容,希望文章能够帮你解决java – Android – 游标加载器如何知道底层数据集已经改变?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1118191.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存