Android 主线程和子线程通信问题

时间:2023-01-06 05:07:56


    Android 现在不支持View在子线程中创建及调用其方法。如果要实现子线程内容更新之后,将结果及时反馈到主线程中,该如何出来呢?

    可以在主线程中创建Handler来实现。 这样子线程的结果,可以通过发消息的形式,通知主线程,然后主线程中去及时更新View控件。


   Handler的使用方式:

   mHandler = new Handler(){
            @Override
            public void handleMessage(Message msg) {
                super.handleMessage(msg);
                switch (msg.what) {
                case xxxxxx:
                updateLotteryInfo();
                break;

                default:
                break;
                }
            }
        };


   发消息的时候,可以: mHandler.sendEmptyMessage(xxxxx);

  如果添加内容,可以:mHandler.obtainMessage(MessageName,  MessageContent).sendToTarget();

    在方法handleMessage 中可以msg.obj.toString() 获取Message的内容。

  发送消息还有其他的方式,可以自行查阅