Android的Activity.runOnUiThread不是静态的,那么我该如何使用它呢?

2024-01-11

例如,如果我有一个线程正在执行昂贵的操作,并且我想从该线程在 Main(活动)类中触发 runOnUiThread。显然我不应该创建我的活动类(主要)的实例。所以如果我尝试

 Main.runOnUiThread(mRunnable);

从我的线程中,它给了我一个错误,说它不是静态方法,因此无法以我的方式访问它。现在我的理解是,活动类几乎几乎是以静态方式访问的。
我该怎么做?

(顺便说一句:我这样做是因为我得到调用FromWrongThreadException,只有创建视图层次结构的原始线程才能触摸它的视图)


劳纳克的想法是正确的。我只是补充一点,您还可以在方法 sendEmptyMessage 中指定一个整数作为处理程序的标识符。这将允许您创建一个可以处理所有 UI 更新的处理程序,例如

public static final int EXAMPLE = 0;
public static final int ANOTHER_EXAMPLE = 1;

private final Handler handler = new Handler(){
    @Override
    public void handleMessage(Message msg) {
        switch( msg.what ){
            case EXAMPLE: 
                //Perform action
                break;
            case ANOTHER_EXAMPLE;
                //Perform action
                break;
        }
    }
} 

//Call to submit handler requesting the first action be called
handler.sendEmptyMessage(EXAMPLE);

希望这可以帮助!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android的Activity.runOnUiThread不是静态的,那么我该如何使用它呢? 的相关文章

随机推荐

  • 解析XML时所有nodeValue字段均为None

    我正在用 Python 构建一个简单的基于 Web 的 RSS 阅读器 但在解析 XML 时遇到问题 我首先在 Python 命令行中尝试了一些东西 gt gt gt from xml dom import minidom gt gt gt
  • 使用 IObservable 进行批处理

    我的服务器端向我发送批量消息 批次中的消息数量和频率是任意的 有时 我每隔 1 分钟就会收到一条消息 有时一小时内都没有收到消息 1 到 10 条消息 我当前的实现使用Observable Buffer TimeSpan FromSecon
  • 我们如何指定 tabhost 中每个选项卡的宽度?

    我在我的应用程序中使用 tabhost 我们可以为每个选项卡提供单独的宽度属性吗 即 一个宽度较大 另一个宽度较小 我们可以在代码中提及制表符宽度 例如 tabHost getTabWidget getChildAt 0 getLayout
  • 适配器 getView 被多次调用,位置为 0

    我在从动态布局渲染 ListView 时面临一些问题 我不知道为什么getView仅在位置 0 处被调用多次 我通过互联网和 stackoverflow 进行搜索 但找不到合适的答案 我实际上正在尝试做一个演示 http www frame
  • @Asynchronous bean 内部的 Java 注入

    我有 2 个使用注入来 传递 从中提取的 UserData 信息的 beanHttpRequest 如果我删除 Asynchronous从 WorkerBean 开始 然后它就可以工作了 WorkerBean 可以访问注入的 UserInf
  • SQL Azure 数据同步生产准备好了吗?

    我想开始使用 SQL Azure 和 SQL Azure 数据同步 适用于本地 SQL 2008 和 Azure Azure 门户仍然将数据同步标记为 预览 那么它是否已准备好投入生产 如果不是的话什么时候会呢 任何标记为 预览中 的内容都
  • 使用 jQuery 动态检查和取消检查复选框:bug?

    我制作了一个脚本来控制主从复选框 自动选中和取消选中 这是我的JS document ready function myCheck click function myCheck attr checked false myCheck clic
  • Qt - 信号槽中的参数

    我有一个 QPushButton QDateEdit 和另一个自定义对象 我想将按钮连接到日期编辑对象 当我单击按钮时 日期编辑对象会将其设置日期更改为自定义对象上定义的日期 有点像这样 connect pushbutton SIGNAL
  • 使用 LOGON32_LOGON_NEW_CREDENTIALS 的 LogonUser 适用于远程不受信任的域计算机

    因此 两台机器之间不存在信任 它们位于不同的域中 我已使用登录类型使用 LogonUser API 成功连接到远程计算机 LOGON32 LOGON NEW CREDENTIALS 我能够使用 UNC 共享检索目录的内容 并创建文件流来 下
  • App Store Connect 不显示所有销售 - 为什么?

    为了能够更好地估计我们应用程序的收入 我们实现了一个数据库功能 该功能可靠地 我们在沙盒模式下测试了它 为订阅者在订阅后增加了一个订阅计数器 仅当应用内购买成功后 即当我们收到 StoreKit 的反馈以启用高级功能时 才会触发此功能 现在
  • 修复使用 uploadify 时 django csrf 错误

    我在 django 管理中使用 uploadify 但收到 403 错误 当我使用 csrf exempt错误消失了 但是这是非常危险的 有没有更好的方法通过使用 csrf exempt 装饰器来解决这个问题而不损害管理页面 提前致谢 听起
  • 是否可以使用“firebase-admin”包调用 firebase 函数?

    我有带有基于服务帐户的访问权限的节点应用程序 所以我使用firebase admin 正如我之前所看到的 firebase admin大部分重复firebase包 除了身份验证部分 签名和其他一些部分 但现在我想调用函数 但找不到任何等效项
  • Spring 服务层的 JUnit 测试用例

    我正在尝试配置 JUnit 并为 Spring 3 2 MVC 应用程序的服务层编写测试用例 我找不到太多关于如何从头开始配置 JUnit 并使其适用于 Spring 服务层的信息 这是我的问题 我真的不知道要使用什么版本的 junit 所
  • 如何在构建时在maven中设置项目版本?

    我正在尝试在我们的项目中实现语义版本控制 我测试了 Maven semver 插件 但这对我没有帮助 所以请不要问我为什么 我最终使用了 Maven Groovy 它的工作原理就像一个魅力 但是 当我安装或部署 Maven 项目时 存储库中
  • PHP/GD - 透明背景

    我想结合 GD 在 PHP 中执行以下操作 不幸的是 ImageMagick 不是一个选项 但这似乎是一个常见问题 因此has作为一个解决方案 我似乎找不到它 我想创建一个具有透明背景的PNG 然后我想在上面画一个矩形 在上面复制一个图像
  • 了解 的上限和下限 ?在 Java 泛型中

    我真的很难理解通配符参数 对此我有几个问题 作为类型参数只能在方法中使用 例如 printAll MyList
  • 如何递归读取所有记录并按级别深度SQL显示

    有没有办法在类似的表中递归读取记录并按深度级别排序 table id int parent int value string 1 1 some 2 1 some2 3 2 some3 4 2 some4 5 3 some5 6 4 some
  • C/C++:头文件中的静态函数,是什么意思?

    我知道在源文件中声明静态函数意味着什么 我正在阅读一些代码 发现头文件中的静态函数可以在其他文件中调用 函数是在头文件中定义的吗 这样实际的代码就直接在函数中给出 如下所示 static int addTwo int x return x
  • 如何向带状图添加多个标记?

    我想知道如何在同一个带状图中获得多个标记 tips sns load dataset tips coldict Sun red Thur blue Sat yellow Fri green markdict Sun x Thur o Sat
  • Android的Activity.runOnUiThread不是静态的,那么我该如何使用它呢?

    例如 如果我有一个线程正在执行昂贵的操作 并且我想从该线程在 Main 活动 类中触发 runOnUiThread 显然我不应该创建我的活动类 主要 的实例 所以如果我尝试 Main runOnUiThread mRunnable 从我的线