Android 主线程如何向子线程发送消息?

先把效果贴出来,我点击第一个button让主线程开始发送消息,点击第二个button时将handler移除,我没实现,想实现的可以自己去操作!!

Paste_Image.png
Paste_Image.png
private Button button1;
private Button button2;
/**
 * 主线程的handler
 */
private Handler handler = new Handler() {
    public void handleMessage(android.os.Message msg) {
        //随便发送一个空的消息,延迟3秒发送
        Message message = new Message();
        System.out.println("Main Thread");
        threadHandler.sendMessageDelayed(message, 3000);
    };
};
/**
 * 子线程的hanlder
 */
private Handler threadHandler;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.threadtomain_act);
    button1 = (Button) findViewById(R.id.button1);
    button2 = (Button) findViewById(R.id.button2);
    button1.setOnClickListener(this);
    button2.setOnClickListener(this);
    //使用HandlerThread
    HandlerThread thread = new HandlerThread("Thread Handler");
    thread.start();
    //创建一个新的handler,用于子线程中,给子线程创建一个looper对象
    threadHandler = new Handler(thread.getLooper()) {
        public void handleMessage(android.os.Message msg) {
            //随便发送一个空的消息,延迟3秒发送
            Message message = new Message();
            System.out.println("Thread");
            handler.sendMessageDelayed(message, 3000);
        };
    };
}

@Override
public void onClick(View v) {
    switch (v.getId()) {
    case R.id.button1://向子线程发送消息
        handler.sendEmptyMessage(1);
        break;
    case R.id.button2://移除当前消息
        handler.removeMessages(1);
        break;
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,240评论 25 709
  • 1. ANR异常 Application No Response:应用程序无响应。在主线程中,是不允许执行耗时的操...
    JackChen1024阅读 5,289评论 0 3
  • 雨的夜形态各异。自己是一条酒后的鱼,既不清晰又不梦幻。有时觉得车流蠕动像虫的阵列,有时觉得霓虹闪闪其实是流浪的猫眼...
    泡豇豆下干饭阅读 1,469评论 0 0
  • 很多功能键我都不会,很种什么事情都不懂的孩子一样。对于这种情况,还好我只要保持沉默就可以,但是别人知道的事,我现在...
    沐府墓主阅读 890评论 0 0
  • (一) 忽然 我很想将心平展 认真地把所有心事誊写 可是 我该怎么研墨 来描摹思念 我该如何执笔 来书写离愁 我该...
    阿裴_Ella阅读 3,294评论 0 16