Looper

来源:互联网 发布:网络真人赌博真实吗 编辑:程序博客网 时间:2024/05/20 15:42
使用方法如下:
1. 在每个线程的run()方法中的最开始调用Looper.prepare(),这是为线程初始化消息队列。
2. 之后调用Looper.myLooper()获取此Looper对象的引用。这不是必须的,但是如果你需要保存Looper对象的话,一定要在prepare()之后,否则调用在此对象上的方法不一定有效果,如looper.quit()就不会退出。
3. 在run()方法中添加Handler来处理消息
4. 添加Looper.loop()调用,这是让线程的消息队列开始运行,可以接收消息了。
5. 在想要退出消息循环时,调用Looper.quit()注意,这个方法是要在对象上面调用,很明显,用对象的意思就是要退出具体哪个Looper。如果run()中无其他操作,线程也将终止运行。
new Thread(new Runnable() {public void run() {                //初始化Looper对象 一个线程对应一个looper                Looper.prepare();                mHandler = new Handler() {                    public void handleMessage(Message msg) {                        super.handleMessage(msg);                        Log.i("test", "do somethings");                        if(msg.what == Quit) {                            Looper myLooper = Looper.myLooper();                            myLooper.quit();                        }                    }                };                //开启消息循环                Looper.loop();                Log.i("test", "quit");            }}).start();

0 0
原创粉丝点击