zoukankan      html  css  js  c++  java
  • Android 之runOnUiThread

    Android确保在主线程中执行更新ui操作

    利用Activity的runOnUiThread(Rannable)把动作放在rannable中,确保动作是在UI线程中执行的;

    通过源码:

    /**
    
     * Runs the specified action on the UI thread. If the current thread is the UI
    
     * thread, then the action is executed immediately. If the current thread is
    
     * not the UI thread, the action is posted to the event queue of the UI thread.
    
     *
    
     * @param action the action to run on the UI thread
    
     */
    
    public final void runOnUiThread(Runnable action) {
    
        if (Thread.currentThread() != mUiThread) {
    
            mHandler.post(action);
    
        } else {
    
            action.run();
    
        }
    
    }

    发现,如果action是在主线程中,就直接执行,如果不是就post,这实质还是通过handler机制处理线程与UI线程的通信;

    用法很简单,但要确保调用者是Activity对象,调用如下:

        VideoActivity.this.runOnUiThread(new Runnable() {
            @Override
            public void run() {
                Toast.makeText(getApplicationContext(), "在主线程中的", Toast.LENGTH_LONG).show();
            }
        });            
  • 相关阅读:
    自动化测试
    django
    Linux软件推荐
    deepin升级20.1(2021.3)
    struts_自定义日期类型转换器
    struts_01
    JAVA面向对象思想
    springmvc 文件上传
    ajax+struts2 实现省份-城市-地区三级联动
    mybatis——分页插件
  • 原文地址:https://www.cnblogs.com/rainbowLover/p/10430760.html
Copyright © 2011-2022 走看看