Android 线程间通信四种方式:
1, 通过 Handler 机制
主线程中定义 Handler, 子线程发消息, 通知 Handler 完成 UI 更新, Handler 对象必须定义在主线程中, 如果是多个类直接互相调用, 就不是很方便, 需要传递 content 对象或通过接口调用. 另外 Handler 机制与 Activity 生命周期不一致的原因, 容易导致内存泄漏, 不推荐使用.
2,runOnUiThread 方法
用 Activity 对象的 runOnUiThread 方法更新, 在子线程中通过 runOnUiThread() 方法更新 UI, 强烈推荐使用.
3,View.post(Runnable r)
这种方法更简单, 但需要传递要更新的 View 过去, 推荐使用
4,AsyncTask
AsyncTask, 即异步任务, 是 Android 给我们提供的一个处理异步任务的类. 通过此类, 可以实现 UI 线程和后台线程进行通讯, 后台线程执行异步任务, 并把结果返回给 UI 线程
来源: http://www.jianshu.com/p/a1bee1a8b5c8