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线程之外修改它们是非法的。你是怎么得到推荐信的并不重要