在 Android 应用程序上创建自定义事件侦听器

2023-11-30

我需要设置一个简单的事件侦听器来刷新ListView偶尔。问题是我不知道如何生成事件。

我知道对于按下按键或按钮之类的事件我只需要实现Handler。但在这种特定情况下,我实际上需要生成该事件,每当我的应用程序的另一个正在运行的线程醒来并从 RSS 提要刷新其新闻列表时,该事件就会被触发。

我已经做了一切,但还是被困在这里。我可以获得有关如何实施此操作的更多信息吗?


  1. 定义回调接口

            public interface NewsUpdateListener 
            {
                void onNewsUpdate(<News data to be passed>);
            }
    
  2. 在获取 RSS 提要的后台线程上提供注册工具

        class <Background processing class name> 
        {
        ....
            ArrayList<NewsUpdateListener> listeners = new ArrayList<NewsUpdateListener> ();
        .... 
            public void setOnNewsUpdateListener (NewsUpdateListener listener) 
            {
                // Store the listener object
                this.listeners.add(listener);
            }
        ....
        }
    
  3. 当有新闻可用时触发回调

    ....
    for (listener : listeners) 
    {
        listener.onNewsUpdate(<News data to be passed>);
    }
    ....
    
  4. 在初始化期间在某处注册监听器

    ....
        <class <Background processing class object>.registerListener
    (
        new OnNewsUpdateListener() {
            onNewsUpdate(<News Data>) {
                // process news data
                runOnUIThread(new Runnable() {
                    public void run() {
                        // refresh list view
                    }
                }
            }
    }
    ....
    
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Android 应用程序上创建自定义事件侦听器 的相关文章

随机推荐

  • 当 url 以 & 符号结尾时.NET WebApi 中断

    我有一个 ApiController 例如 Home 控制器 其操作 Test 接受两个参数 test1 和 test2 两者都具有默认值 System Web Http HttpGet public ActionResult Test i
  • 如何在 Java 中弹出卷?

    如何使用 Java 跨平台 弹出 卷 我有一个程序可以在可移动驱动器 USB 存储卡读卡器 上执行一些操作 一旦完成 我希望该程序弹出 卸载 删除 取决于我们正在谈论的操作系统术语 存储卡 有没有可靠的跨平台方法来做到这一点 可能不是您正在
  • Java 和 C/C++ 程序之间的命名管道

    我想在Windows中使用命名管道在用Java和C编写的两个应用程序之间进行通信 通常我使用套接字连接来做到这一点 但现在我必须取消这个想法并寻找新的解决方案 我读到 java 中的命名管道只能在 JVM 内部可见 这是真的吗 有没有办法在
  • 自动生成问题处理

    这更多的是一种观察 而不是一个真正的问题 MS Access 以及一般的 VBA 非常缺少一个可以自动生成错误处理代码以及在发生错误时可以显示行号的工具 你找到解决办法了吗 它是什么 我刚刚意识到 自从几年前找到这个基本问题的正确答案以来
  • 页面重新加载后如何维护复选框切换的 div 的状态?

    我有一个 div 当选中复选框时出现 并在未选中时隐藏 如果表单有错误 页面会重新加载 并且即使在提交之前选中了该复选框 div 也会显示为隐藏 我可以添加对 onLoad 事件的调用 但是是否有更简洁的方法来确保页面重新加载后 根据复选框
  • IEnumerable 到字符串[重复]

    这个问题在这里已经有答案了 我以前从未偶然发现过这一点 但现在我遇到了 并且很惊讶我找不到一种真正简单的方法来转换IEnumerable
  • 合并两列中两个sql查询的结果

    Query 1 SELECT COUNT A EMPNO AS PRESENT FROM ERPDATA NIITESS DBO ZEMP MASXST WEB AL A INNER JOIN PPA EVENTWISEEMPLOYEEMA
  • Rails 4 嵌套表单字段未保存在数据库中

    我有用于输入专辑以及属于专辑的歌曲的表格 专辑正在保存到数据库 但个别歌曲没有保存 相册模型 class Album lt ActiveRecord Base belongs to user has many songs dependent
  • 在时间序列python中查找条件局部最小值

    对于时间序列数据集 A 如何找到每个 ID 的局部最小值 最低点值 本地分钟 B 如何找到比每个局部最小值大 2 的任何后续值 本地分钟 2 import pandas as pd df pd DataFrame id 1 1 1 1 1
  • 如何获取我不拥有的分支的未合并拉取请求?

    我需要在 NServiceBus 存储库中提取特定的拉取请求 尚未处理到主流中 https github com johnsimons NServiceBus commit d8524d53094e8181716e771c1023e9681
  • Scala future 的理解失败

    我有三个连续的 Future 并在这样的理解中使用 val comF for f1 lt future1 f2 lt future2 f3 lt future3 yield something comF onSuccess comF onF
  • 如何从 HAR 文件获取总网页响应时间?

    在下图中 我想要网页的总响应时间 我在文件里好像找不到示例 HAR 文件 即本例中的 38 79s 有谁知道如何得到这个 我将使用 Selenium 以及 Firebug 和 NetExport 来导出 HAR 文件 但现在我正在尝试手动执
  • 使用 JavaScript 访问跨域 iframe 元素

    我的 html 页面中有一个 iframe 我想访问此 iframe 中打开的页面中的一些内容 table border 1 width 100 height 100 tr td td tr table 在此网页的源代码中 h1 Angel
  • 由于 Android Gradle 插件需要 Java 11 才能运行,Flutter 应用程序无法运行。您当前使用的是 Java 1.8

    我正在尝试制作一个颤振应用程序 但我不断收到此错误 What went wrong A problem occurred evaluating project app gt Failed to apply plugin com androi
  • 如何迭代动态对象数组并在测试中使用每个对象作为参数?

    一个月前我开始了我的空手道冒险之旅 我有一个简单的 GET 测试 名为获取所有汽车 feature显示当前可用的汽车列表 brandName BMW id 1 winterTires false modelName X5 brandName
  • 如何获取更新剪贴板的应用程序的进程ID或名称?

    我正在用 C 创建一个剪贴板管理器 有时我会遇到剪贴板被某些应用程序设置为空的情况 这发生在例如Excel取消选择刚刚复制的内容时 所以我需要弄清楚剪贴板是否为空 但是如何获取更新剪贴板的应用程序名称 我希望我能以某种方式得到HWnd更新剪
  • 在Python中加入int作为列表

    我的输入现在看起来像这样 6 7 5 2 9 9 7 1 5 6 7 1 2 0 6 3 3 8 8 0 5 1 2 3 我想制作一个如下所示的列表 675299 71567 1206338 805123 我怎样才能做到这一点 将数字列表转
  • Delphi 扩展到 C#

    如何将浮点 10 字节十六进制字符串 Delphi 中的扩展数据类型 转换为 C 数据类型 例如 00 00 00 00 00 00 00 80 ff 3f在德尔福1 遇到了同样的问题 分享我的解决方案 有人会觉得有用 var extend
  • Android 运行时出现错误:android.content.res.Resources$NotFoundException:资源 ID #0x7f080058

    我收到如下错误 之前工作正常 2019 01 04 22 17 32 516 12750 12750 I InstantRun starting instant run server is main process 2019 01 04 2
  • 在 Android 应用程序上创建自定义事件侦听器

    我需要设置一个简单的事件侦听器来刷新ListView偶尔 问题是我不知道如何生成事件 我知道对于按下按键或按钮之类的事件我只需要实现Handler 但在这种特定情况下 我实际上需要生成该事件 每当我的应用程序的另一个正在运行的线程醒来并从