创建线程的两种方式
1 继承 Thread
2 接口 Runnabe
start() 开启一个线程
sleep(时间) 线程的休眠
interrupt 中断线程
4Handle刷新ui
信息处理类,运行我们发送一个消息和处理Message和Runable的信息队列MessageQueue
回调接口 handleMessage(){} 更新ui处理信息
sendMessage() 发送一个消息
sendEmptyMessage() 发送一个空消息
sendMessageAtTime()定时发送消息
sendMessageDelayed()延迟多少时间发送
消息类
Message message = new Message()
message.what =1001;
message.obj = "333fdsd"
package com.yifei.myapplication;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.support.v7.app.AppCompatActivity;import android.view.MotionEvent;import android.view.View;import android.widget.FrameLayout;import android.widget.ImageView;import android.widget.Toast;import java.util.Random;public class MainActivity extends AppCompatActivity {private int num = 0;private int[][] position = new int[][]{{100, 380}, {280, 380}, {470, 380},{95, 600}, {280, 600}, {460, 600},{90, 900}, {280, 900}, {460, 900}};Handler handler = new Handler() {@Overridepublic void handleMessage(Message msg) {switch (msg.what){case 1001:int index = msg.arg1;imageView.setX(position[index][0]); //设置图片的坐标imageView.setY(position[index][1]);imageView.setVisibility(View.VISIBLE);//设置图片显示break;default:return;}}};private ImageView imageView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);FrameLayout frameLayout = findViewById(R.id.frame);imageView = findViewById(R.id.imageView);Thread thread = new Thread(new Runnable() {@Overridepublic void run() {int index =0;while (!Thread.currentThread().isInterrupted()){index = new Random().nextInt(position.length); //产生一个int类型的随机数Message message = handler.obtainMessage();//从消息池中获取一条消息message.what=1001; //标识一条消息是谁发送的message.arg1 = index;handler.sendMessage(message);try {Thread.sleep(new Random().nextInt(500)+300);} catch (InterruptedException e) {e.printStackTrace();}}}});thread.start(); //启动线程imageView.setOnTouchListener(new View.OnTouchListener() { //设置触摸的监听@Overridepublic boolean onTouch(View v, MotionEvent event) {imageView.setVisibility(View.INVISIBLE); //设置图片消失num++;Toast.makeText(MainActivity.this,"您打中了"+num+"只地鼠",Toast.LENGTH_SHORT).show();return false;}});}}