在后台线程中发送消息到UI线程的时候,这些消息会被缓存起来,直到后台进程完成之后再推送到UI线程处理。例如,在Android中可以使用Handler类的post方法将消息发送到UI线程缓存起来,等待后台进程完成之后再调用handleMessage方法将消息推送到UI线程。
示例代码:
//在后台线程中发送消息到UI线程缓存起来 Handler handler = new Handler(); handler.post(new Runnable() { @Override public void run() { //执行耗时任务 //... //将结果发送到UI线程缓存起来 handler.obtainMessage(1, result).sendToTarget(); } });
//在UI线程中处理消息 Handler uiHandler = new Handler() { @Override public void handleMessage(Message msg) { switch (msg.what) { case 1: //处理耗时任务的结果 //... break; default: break; } } };