gpt4 book ai didi

android - 如何在服务启动的窗口中更新 ListView ?

转载 作者:行者123 更新时间:2023-11-30 03:06:44 26 4
gpt4 key购买 nike

我正在我的应用程序顶部创建一个始终可见的半透明窗口。当我使用该应用程序时,它会显示一些日志。

为此,我创建了一个服务,该服务使用 SYSTEM_SERVICE 窗口在屏幕上显示半透明的 UI。该服务是图书馆的一部分。我将服务和所需的权限添加到我的应用程序的 list 文件中。

我通过观察者类从库中启动服务。现在,我需要在该半透明窗口中显示一个列表。此列表应自动滚动。 ListView 的数据是同一观察者类的一部分,该观察者类不断向列表中添加字符串。我在我的服务中创建了一个适配器和 ListView (作为 View )并将其添加到半透明窗口。

我现在想更新列表。从这个观察者类访问适配器对象并在更新字符串数组列表时调用 notifyDataSetChanged 会使我的应用程序崩溃:

“android.view.ViewRootImpl$CalledFromWrongThreadException:只有创建 View 层次结构的原始线程才能触及它的 View 。”

如果我在服务中初始化适配器,当列表有更新时,我如何从观察者类调用 notifyDataSetChanged?

我到处都在使用应用上下文。底层应用程序应该像往常一样运行。

有什么想法吗?

最佳答案

只是一个想法。您可以向服务发送消息(可能包含要更新的数据)并允许服务更新 UI。考虑到服务是创建窗口的实体,这似乎特别合适。

关于android - 如何在服务启动的窗口中更新 ListView ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21692169/

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