不说废话 , 直接上代码了
public class MainActivity extends AppCompatActivity { @BindView(R.id.imageView) ImageView imageView; @BindView(R.id.textView) TextView textView; @BindView(R.id.button) Button button; //更推荐使用Message.obtain()来获取Message实例,因为在Message类里面定义了一个消息池,当消息池里存在未使用的消息时,便返回, // 如果没有未使用的消息,则通过new的方式创建返回,所以使用Message.obtain()的方式来获取实例可以大大减少当有大量Message对象 // 而产生的垃圾回收问题。 private Handler mHandler; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.bind(this); mHandler = new Handler(){ @SuppressLint("SetTextI18n") @Override public void handleMessage(Message msg) { super.handleMessage(msg); textView.setText(msg.what + ""); //在handleMessage中处理消息队列中的消息 } }; } @OnClick(R.id.button) public void onViewClicked() { //通过Handler + Message的方式实现倒计时 for (int i = 0; i <10; i++) { Message message = Message.obtain(mHandler); message.what = 10 - i; mHandler.sendMessageDelayed(message, 1000*i);//通过延迟发送消息,每隔一秒发送一条消息 } } }