5
回答
线程与Activity主线程通信用哪种方式好?
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

    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发送广播消息?

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

举报
lwm1368
发帖于3年前 5回/733阅
共有5个答案 最后回答: 3年前

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

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

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

--- 共有 1 条评论 ---
lwm1368Hi Jerikc 谢谢! 明白了~因为需要耗时操作,所以才开线程的。 3年前 回复

引用来自“Jerikc”的评论

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

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

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

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

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

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

引用来自“Jerikc”的评论

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

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

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

谢谢!
顶部