gpt4 book ai didi

Android如何定期更新 ListView

转载 作者:行者123 更新时间:2023-11-29 01:54:16 26 4
gpt4 key购买 nike

我有一个在我的 ListView 中使用的数组适配器。通过从服务器获取或删除内容来定期更新适配器。我使用 scheduledthreadpoolexecutor 定期更新适配器,然后使用 adapter.notifydatasetchange();

ListView 会刷新并删除任何项目等,但是例如,当我在 android 上滚动 ListView 并接近 ListView 的末尾时,如果从列表中删除了两个项目,应用程序会崩溃。我想 ListView 中的某些内容没有得到更新,并且列表的大小是初始大小。

有什么推荐的吗?

问候,阿瑞斯

大家好

我实际上找到了解决我的问题的方法,但忘了在此处查看是否有任何回复。谢谢大家的建议。基本上,调度的线程池执行器调用一个可运行的(我们称之为 updateRunnable)来进行更新。我所做的是以下内容:在 updateRunnable 中,当它获取新数据并将它们存储在数组适配器中时,它然后使用 runOnUiThread 调用另一个 runnable(我们称之为 updateListView),在 updateListView 中我设置了 ListView 的适配器。这解决了我的问题

最佳答案

如果您的数据完全类似于数据库,我假设您使用的是 ListView,那么您需要将后台服务重构为使用 ContentProviderSyncAdapter 与服务器保持同步,然后通过绑定(bind) CursorAdapter 自动通知 ListView,后者使用 ContentObserver 的实现来自动更新基础数据库更改时的列表。

Why does ContentResolver.requestSync not trigger a sync?告诉您如何设置 ContentProvider。

How to handle REST calls, data persistence, syncing and observing ContentProvider向您详细介绍 ContentProvider 同步后列表更新通知如何运作。

设置需要大量的基础设施工作,但是一旦您完成设置,SyncAdapter 模型就会自动完成很多工作。

关于Android如何定期更新 ListView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16119939/

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