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();
            }
        });            
  • 相关阅读:
    JAVA 数据结构 ConcurrentHashMap
    String|StringBuilder|StringBuffer
    JAVA 数据结构 HashMap
    JVM 经典垃圾收集器大合集
    JVM 垃圾收集算法
    JVM GC内存回收
    跳跃游戏||
    K次取反后最大化数组和
    删除排序链表中的重复元素
    排序链表
  • 原文地址:https://www.cnblogs.com/rainbowLover/p/10430760.html
Copyright © 2011-2022 走看看