我刚刚阅读了Handler
对象及其在android中的用法。这是一种将数据/状态从某个后台线程传递到UI线程的方法。
假设UI中有TextView
,我们只需在工作完成后将状态更新为“已完成”。以下逻辑有什么不好。那我们为什么要Handlers
?
可以通过以下逻辑实现相同的功能。
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");
}
}
我们可以从Activity中启动后台线程,如
new Thread (new BackgroundThread (this.findViewById (R.id.my_text_view))).start();
bt.start();