Android中定时任务的实现

举报
张俭 发表于 2023/12/29 11:42:40 2023/12/29
【摘要】 1.利用TimerTask实现任务的定时执行 TextView shoothzj; int count = 0;//用于计数 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setConten...

1.利用TimerTask实现任务的定时执行

    TextView shoothzj;
    int count = 0;//用于计数
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        shoothzj = (TextView) findViewById(R.id.shoothzj);
        Timer timer = new Timer();//新建一个Timer
        timer.schedule(new UpdateTimeTask(),100,200);
        //通过schedule方法执行一个TimerTask,Timertask是一个抽象类,必须重写它的run方法。
        //task,long a,long b代表的是先等待a毫秒的延迟执行任务,然后每次等待大约b时间执行任务。
    }
    class UpdateTimeTask extends TimerTask{

        @Override
        public void run() {
            count++;
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    shoothzj.setText("这是"+"第"+count+"次");
                }
            });
        }
    }

2.利用Handler实现定时任务的操作

TextView shoothzj;
int count = 0;
private Handler mHandler;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mHandler = new Handler();//初始化handler
    shoothzj = (TextView) findViewById(R.id.shoothzj);
    mHandler.postDelayed(new UpdateTimeTask(),200);//延迟200,执行这个任务
}
class UpdateTimeTask extends TimerTask{
    @Override
    public void run() {
        count++;
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                shoothzj.setText("这是"+"第"+count+"次");//执行完毕
                mHandler.postDelayed(new UpdateTimeTask(),100);//延迟100,再执行这个任务
            }
        });
    }
}

如果你想要取消这个post事件,你可以使用handler的removeCallbacks(TimerTask task)方法。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。