Handler的使用代码

package com.example.administrator.mystudent.StuHandler;


import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.widget.ImageView;
import android.widget.TextView;

import com.example.administrator.mystudent.R;

public class HandleActivity extends Activity {
    private Handler myHandler;
    private ImageView mImageView;
    private TextView testView;

    private MyRunnable myRunnable;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_handle);

        mImageView= (ImageView) findViewById(R.id.img);
        testView= (TextView) findViewById(R.id.testView);

        myHandler=new Handler();
        myRunnable=new MyRunnable();

        /*myHandler=new Handler(){
            @Override
            public void handleMessage(Message msg) {
                testView.setText("这里更新的值是"+msg.what);
            }
        };*/

        testHandlerPost();
        //testThread();
        testHandlerpostDelayed();

    }

    /**
     * 多线程测试
     */
    private void testThread() {
        new Thread(new Runnable() {
            @Override
            public void run() {
                /*//Message message=new Message();
                Message message=myHandler.obtainMessage();  //类似上面一行代码,获得一个消息体
                message.what=88;
                //myHandler.sendMessage(message);
                message.sendToTarget(); //和上面一行代码类似,也是发送消息
                */
                //以下代码会抛出异常
                try {
                    Thread.sleep(1000);
                    mImageView.setBackgroundResource(R.drawable.img1);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }

            }
        }).start();
    }


    /**
     * handler的post方法测试
     */
    private void testHandlerPost() {
        new Thread(){
            @Override
            public void run() {
                myHandler.post(new Runnable() {
                    @Override
                    public void run() {
                        //这里处理UI界面的东西
                        mImageView.setBackgroundResource(R.drawable.img1);
                    }
                });
            }
        }.start();

    }

    /**
     * handler的postDelayed方法测试
     */
    private void testHandlerpostDelayed() {

        new Thread(){
            @Override
            public void run() {
                //延迟几秒执行
                myHandler.postDelayed(myRunnable,1000);
            }
        }.start();

        //把消息移除消息队列
        myHandler.removeCallbacks(myRunnable);
    }

    /**
     * 多线程类
     */
    private class MyRunnable implements Runnable{
        @Override
        public void run() {
            testView.setText("这里更新的值");
        }
    }
}

 

posted @ 2016-12-20 15:02  点滴之水  阅读(164)  评论(0)    收藏  举报