Timer TimerTask Handler

上面一篇博文采用了Timer和TimerTask的方法来实现倒计时的功能,但是由于改变UI必须在主线程中进行改变,所以使用了runOnUiThread方法来实现。其实,除了这个方法之外,最常用的还是使用Handler来实现。

在android中提供了一种异步回调机制Handler,利用它可以在完成任务后做出相应的通知。

这里使用Handler来实现倒计时的功能,具体代码如下:

package com.example.timertimertaskhandlerdemo;

import java.util.Timer;
import java.util.TimerTask;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.Menu;
import android.view.View;
import android.widget.TextView;

public class MainActivity extends Activity {
private int secondLeft = 10;
private TextView textView;
Timer timer = new Timer();
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    textView = (TextView) findViewById(R.id.texttime);
}

public void begin(View view) {
    timer.schedule(task, 1000, 1000);
}

TimerTask task = new TimerTask() {
    
    @Override
    public void run() {
        // TODO Auto-generated method stub
        secondLeft--;
        Message message = new Message();
        message.what = 1;
        handler.sendMessage(message);
    }
};

    Handler handler = new Handler() {
    public void handleMessage(Message msg) {
        switch (msg.what) {
        case 1:
            textView.setText("" + secondLeft);
            if (secondLeft < 0) {
                timer.cancel();
                textView.setText("倒计时结束");
            }
        }
    }
};

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 180,118评论 25 708
  • 一、Timer TimerTask 参考Java中的Timer和TimerTask在Android中的用法 在开发...
    合肥黑阅读 8,480评论 5 21
  • 相信大家在项目里面不少会用到倒计时操作吧,倒计时功能在我们业务开发中使用概率非常高,例如用户操作姿势错误,我们给...
    Scus阅读 10,215评论 0 3
  • 昨天早高峰堵在马路上,第一本书《爱的五种语言》听完,我的车向前走了不到5公理。 路漫漫,车攘攘。都堵上了,大家到不...
    咨询师加油站阅读 360评论 0 2
  • 1 一周没开电脑,打开文档,我知道这将是我2017年在机器上敲下的第一篇完整的文字。嗯,没错,加了一连串的前缀,因...
    格桑美朵1阅读 438评论 2 3

友情链接更多精彩内容