android里面所说的looper是什么意思啊? 20
还有getLooper()这个方法是什么意思呢?求高手!publicclassHandlerTestextendsActivity{publicvoidonCreate(...
还有getLooper()这个方法是什么意思呢?求高手!
public class HandlerTest extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
System.out.println("Activity....." + Thread.currentThread().getId());
HandlerThread ht = new HandlerThread("abc");
ht.start();
MyHandler myHandler = new MyHandler(ht.getLooper()); //这个ht.getLooer是什么意思???
Message msg = myHandler.obtainMessage();
msg.sendToTarget();
}
class MyHandler extends Handler { //这整个方法是具体用来作什么的?
public MyHandler(Looper looper) {
super(looper);
}
public void handleMessage(Message msg) { //这个就不用说了
System.out.println("Handler......" +Thread.currentThread().getId());
System.out.println("handlerMessage");
}
}
} 展开
public class HandlerTest extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
System.out.println("Activity....." + Thread.currentThread().getId());
HandlerThread ht = new HandlerThread("abc");
ht.start();
MyHandler myHandler = new MyHandler(ht.getLooper()); //这个ht.getLooer是什么意思???
Message msg = myHandler.obtainMessage();
msg.sendToTarget();
}
class MyHandler extends Handler { //这整个方法是具体用来作什么的?
public MyHandler(Looper looper) {
super(looper);
}
public void handleMessage(Message msg) { //这个就不用说了
System.out.println("Handler......" +Thread.currentThread().getId());
System.out.println("handlerMessage");
}
}
} 展开
6个回答
展开全部
Looper即:有消息循环的线程。
在Android里线程分为有消息循环的线程和没有消息循环的线程,有消息循环的线程一般都会有一个Looper,这个事android的新概念。主线程(UI线程)就是一个消息循环的线程。针对这种消息循环的机制,引入一个新的机制Handle,有消息循环,就要往消息循环里 面发送相应的消息,自定义消息一般都会有对应的处理,消息的发送和清除,消息的处理,把这些都封装在Handle里面,注意Handle只是针对那些有Looper的线程,不管是UI线程还是子线程,只要有Looper,就可以往消息队列里面添加东西,并做相应的处理。
在Android里线程分为有消息循环的线程和没有消息循环的线程,有消息循环的线程一般都会有一个Looper,这个事android的新概念。主线程(UI线程)就是一个消息循环的线程。针对这种消息循环的机制,引入一个新的机制Handle,有消息循环,就要往消息循环里 面发送相应的消息,自定义消息一般都会有对应的处理,消息的发送和清除,消息的处理,把这些都封装在Handle里面,注意Handle只是针对那些有Looper的线程,不管是UI线程还是子线程,只要有Looper,就可以往消息队列里面添加东西,并做相应的处理。
展开全部
Looper,Handler,Message这几个类的源码 它是其中一种
Looper的字面意思是“循环者”,它被设计用来使一个普通线程变成Looper线程。所谓Looper线程就是循环工作的线程。在程序开发中(尤其是GUI开发中),我经常会需要一个线程不断循环,一旦有新任务则执行,执行完继续等待下一个任务,这就是Looper线程。使用Looper类创建Looper线程很简单。
我不知道我解释清楚了没有。
Looper的字面意思是“循环者”,它被设计用来使一个普通线程变成Looper线程。所谓Looper线程就是循环工作的线程。在程序开发中(尤其是GUI开发中),我经常会需要一个线程不断循环,一旦有新任务则执行,执行完继续等待下一个任务,这就是Looper线程。使用Looper类创建Looper线程很简单。
我不知道我解释清楚了没有。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
给一个线程的消息队列设置一个looper,这个线程的消息队列就可以循环处理了。
追问
这个线程的消息队列就可以循环处理了
这句话是什么意思?有点听不懂,能打个比方吗?
还有,那个getLooper的方法是用来做什么的?
3Q!
追答
HandlerThread继承于Thread,所以它本质就是个Thread。与普通Thread的差别就在于,它有个Looper成员变量。这个Looper其实就是对消息队列以及队列处理逻辑的封装,简单说就是 消息队列+消息循环。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
详细的看参考资料。
这里继承Handler对象只是为了实现handleMessage这个方法来对消息进行处理。
这里继承Handler对象只是为了实现handleMessage这个方法来对消息进行处理。
参考资料: http://zhidao.baidu.com/question/361104060.html?oldq=1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
MyHandler myHandler = new MyHandler(ht.getLooper());
这行代码意思是新建myHandler对象并让myHandler处理ht线程的消息队列MQ里的消息
这行代码意思是新建myHandler对象并让myHandler处理ht线程的消息队列MQ里的消息
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |