线程与Activity主线程通信用哪种方式好?

lwm1368 发布于 2014/07/29 09:29
阅读 769
收藏 0

    Hi 各位大侠:

我新建一个线程:

new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
int timeOut = 0;
while((timeOut < 10)&&(isRunning))
{
try {
Thread.sleep(1000);
timeOut++;
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//发送消息给Activity;
}
}).start();

在线程结束时需要通知主线程,并附加一个字符串作为消息内容。

这种情况下应该使用Handler.sendMessage()还是 通过Intent发送广播消息?

能对这两种方法做个对比吗?

加载中
0
Jerikc
Jerikc

用Handler方式,它是定向的,有目的性的;而广播会发散的,需要遍历所有的接收器(楼上已经提到过)。

根据你的需求,你只需要定向的发送到指定的Activity,已经可以确定消息的接收者,用Handler毋庸置疑,广播相对来说效率会更低~

如果你的线程里面没有做那种很耗时的操作,其实个人决定没有必要再新建线程了,可能会得不偿失~

lwm1368
lwm1368
Hi Jerikc 谢谢! 明白了~因为需要耗时操作,所以才开线程的。
0
obaniu
obaniu

 Activity直接用runOnUIThread就可以了。

发送广播消息?广播用来干嘛?高清楚先。

0
oldfeel
oldfeel
当然是handler了,handler只负责监听 被 new 时 所在的线程.而广播要遍历一下所有的接收器.
0
lwm1368
lwm1368

引用来自“Jerikc”的评论

用Handler方式,它是定向的,有目的性的;而广播会发散的,需要遍历所有的接收器(楼上已经提到过)。

根据你的需求,你只需要定向的发送到指定的Activity,已经可以确定消息的接收者,用Handler毋庸置疑,广播相对来说效率会更低~

如果你的线程里面没有做那种很耗时的操作,其实个人决定没有必要再新建线程了,可能会得不偿失~

用Handler方式,它是定向的,有目的性的;而广播会发散的,需要遍历所有的接收器(楼上已经提到过)。

根据你的需求,你只需要定向的发送到指定的Activity,已经可以确定消息的接收者,用Handler毋庸置疑,广播相对来说效率会更低~

如果你的线程里面没有做那种很耗时的操作,其实个人决定没有必要再新建线程了,可能会得不偿失~

0
lwm1368
lwm1368

引用来自“Jerikc”的评论

用Handler方式,它是定向的,有目的性的;而广播会发散的,需要遍历所有的接收器(楼上已经提到过)。

根据你的需求,你只需要定向的发送到指定的Activity,已经可以确定消息的接收者,用Handler毋庸置疑,广播相对来说效率会更低~

如果你的线程里面没有做那种很耗时的操作,其实个人决定没有必要再新建线程了,可能会得不偿失~

谢谢!
返回顶部
顶部