[android] - android线程与主Acitivity通信

     目前的项目需要在主Activity中启动多个耗时的子线程,由于程序管理的关系,有的简短子线程就直接放在主Activity中,有的子线程代码篇幅太大,就创建了新的类。

但是两种情况下,都需要传递消息,消息由主Activity中的mainHandler处理(因为涉及到界面),今天小结一下做个备忘,一共有两种通信情况:


1、主Activity创建子线程,并直接在主Activity中调用mainHandler处理消息

      方法如下
    class MyThread extends Thread {  
        public void run() {  
                     ........
                     Message msg = new Message();  
                     msg.what = 2;
                     mainActivity.this.myHandler.sendMessage(msg);
                     ........
        }
}

2、主Activity创建子线程,但是子线程的内容是一个独立的类,子线程内部需要调用mainHandler处理消息

     方法如下

     在主Activity中增加一个public static mainActivity类型的变量名为Instance,在主Activity的OnCreate函数中,给该Instance赋值为mainActivity.this;如果线程内部需要使用主Activity的线程的mainHandler处理消息,可以把上面代码中的mainActivity.this.myHandler.sendMessage(msg)改为Instance.myHandler.sendMessage(msg);


  但是网上的资料有说,Activity直接跟Thread通信是不太好的,影响效率,最好是通过Service去控制Thread;也有同事建议我用线程池,正在学习中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值