zoukankan      html  css  js  c++  java
  • 如何在子线程中使用Toast和更新UI

    因为没一个Looper处理消息循环,所以子线程中无法使用Toast

    方法:

    Looper.prepare();     
     Toast.makeText(getActivity(),"刷到底啦",Toast.LENGTH_SHORT).show();  
     Looper.loop();

    在子线程中更新UI

    第一种:

    new Handler(context.getMainLooper()).post(new Runnable() {
     
        @Override
        public void run() {
            // 在这里执行你要想的操作 比如直接在这里更新ui或者调用回调在 在回调中更新ui
     
        }
    });

    第二种:

    // 如果当前线程是UI线程,那么行动是立即执行。如果当前线程不是UI线程,操作是发布到事件队列的UI线程
    // 因为runOnUiThread是Activity中的方法,Context是它的父类,所以要转换成Activity对象才能使用
    ((Activity) context).runOnUiThread(new Runnable() {
     
        @Override
        public void run() {
            // 在这里执行你要想的操作 比如直接在这里更新ui或者调用回调在 在回调中更新ui
        }
    });

    第三种就是handler机制了

  • 相关阅读:
    Javascript Property Names
    Java泛型
    Activity 与 Task
    使用ddns搭建免费服务器
    DDNS
    SimpleAdapter用法
    Java KeyNote
    Android无法访问本地服务器(localhost/127.0.0.1)的解决方案
    Android 添加网络权限
    Java 匿名内部类
  • 原文地址:https://www.cnblogs.com/DASOU/p/4253044.html
Copyright © 2011-2022 走看看