android假如主线程依赖子线程A的执行结果,如何让A执行完成,之后主线程再往下执行呢?

需要在子线程执行完成的地方,通过主线程的Handler发送一条消息;主线程收到消息后执行:

public class MainActivity extends Activity {    private Handler uiHandler = new Handler(){        // 覆写这个方法,接收并处理消息。        @Override        public void handleMessage(Message msg) {            switch (msg.what){                case 1:                    break;
//主线程在这完成子线程回传数据的接收,并完成对之的操作(解析等。。。)
//进而,可选择跳转页面,或者更新ui
            }        }    };        class ChildThread extends Thread{        @Override        public void run() {            try{                // 子线程执行完毕的地方,利用主线程的handler发送消息                Message msg = new Message();                msg.what = 1;                uiHandler.sendMessage(msg);            }catch (InterruptedException e){                e.printStackTrace();            }        }    }

PS:主线程是UI线程,不要试图让UI线程等待某个结果,之后再往下执行,这会导致UI卡顿。
UI线程是一直循环的,我们需要通过消息机制通知UI线程去做一些事情。

更多相关文章

  1. Android应用程序键盘(Keyboard)消息处理机制分析(27)
  2. Android消息推送接收后,通知栏的显示
  3. Android应用程序键盘(Keyboard)消息处理机制分析(17)
  4. Android使用线程获取网络图片的方法
  5. android中使用多线程——HandlerThread举例
  6. android 多线程断点下载,listview 模式 开始 暂停等功能

随机推荐

  1. Android(安卓)4.4 Kitkat 使能有线网络 E
  2. Android Layout Tricks #3: Optimize wit
  3. Android中Java反射技术的使用示例
  4. android之具有选择功能的AlertDialog
  5. android 调用系统自带录音实现,语音录制与
  6. android 系统学习资料
  7. Android android:focusableInTouchMode
  8. Android dip转化为px
  9. Android实现ListView或GridView首行/尾行
  10. Android Drawable、Bitmap、byte[]之间的