Java android中对Handler对象的需求是什么?

Java android中对Handler对象的需求是什么?,java,android,multithreading,Java,Android,Multithreading,我刚才在读关于处理程序对象及其在android中的使用。这是一种将数据/状态从某个后台线程传递到UI线程的方法 假设UI中有一个TextView,一旦工作完成,我们只需要将状态更新为“已完成”。下面的逻辑有什么不好。那么为什么我们要处理程序 可以通过以下逻辑实现相同的功能 public class BackgroundThread implements Runnable { TextView textView; BackgroundThread(TextView tv) {

我刚才在读关于
处理程序
对象及其在android中的使用。这是一种将数据/状态从某个后台线程传递到UI线程的方法

假设UI中有一个
TextView
,一旦工作完成,我们只需要将状态更新为“已完成”。下面的逻辑有什么不好。那么为什么我们要
处理程序

可以通过以下逻辑实现相同的功能

public class BackgroundThread implements Runnable {

    TextView textView;

    BackgroundThread(TextView tv) {
        this.textView = tv;
    }

    public void run() {
        /* Do the background time consuming work here */

        /* We already have a reference to the UI ob Text View object */
        /* Use that to update the UI */

        textView.setText ("Task Completed");
    }
}
我们可以从如下活动开始后台线程

new Thread (new BackgroundThread (this.findViewById (R.id.my_text_view))).start();
bt.start();

此代码将崩溃。您不能在UI线程外触摸UI元素。出于这个原因(以及许多其他原因),您需要使用Handler@RoiDivon因此,即使我们在某些线程中有它的有效引用,修改UI元素也是非法的?是的。在UI线程之外修改它们是非法的。你是怎么得到推荐信的并不重要