android 对UI的操作只能在UI线程(一般是在Activity 的main 线程),那么非UI线程如何通知UI 线程去更新UI呢?在android 里提供了Handler来交互。下面我就记录其中的一种交互方法的例子(这例子也是从android 的源码中总结出来的):

//在UI线程定义
Handler mHandler = new Handler(); // handler for the main thread
Thread mWorkerThread;


protected void onStart() {
// TODO Auto-generated method stub
super.onStart();
mWorkerThread = new Thread("GalleryPicker Worker") {
@Override
public void run() {

//在GalleryPicker worker 线程
System.out.println(Thread.currentThread().getName());
ContentResolver cr = getContentResolver();
final boolean scanning = isMediaScannerScanning(cr);

mHandler.post(new Runnable() {
public void run() {
//在UI main 线程 System.out.println(Thread.currentThread().getName());
checkScanningFinished(scanning);
}

});
}
};
mWorkerThread.start();
}

通过UI Main 线程的handler post可以使得UI线程与非UI线程进行交互!!

更多相关文章

  1. Android 任务、进程和线程
  2. Android:线程使用来更新UI--Thread、Handler、Looper、TimerTask
  3. (原创)如何导入android中的sample例子到eclipse中
  4. 最简单的基于FFmpeg的移动端例子附件:Android 自带播放器
  5. 最简单的基于FFmpeg的移动端例子:Android 视频转码器
  6. 最简单的基于FFmpeg的移动端例子:Android 推流器
  7. Android串口例子
  8. 最简单的基于FFmpeg的移动端例子附件:SDL Android HelloWorld

随机推荐

  1. OpenCV:边缘检测。
  2. 嫌pandas慢又不想改代码怎么办?来试试Modi
  3. 决策树学习笔记(三):CART算法,决策树总结
  4. 582个专业,1281个本科院校,你会如何选择?
  5. 一文了解 Elasticsearch 及其与 Python
  6. 从论文分析,告诉你什么叫 “卡方分箱”?
  7. 作为一个Python爱好者,如何写出高可读性的
  8. 决战紫禁之巅 | sklearn参数介绍及使用
  9. 手把手教你搭建一个 Elasticsearch 集群
  10. Kaggle "$70000奖金池" 竞赛经历分享 —