CountDownTimer的使用和内部类的内存管理

本文详细介绍了Android中的CountDownTimer类,包括其基本用法、可能引发的内存泄漏问题及其解决方法,同时对比了CountDownTimer与Timer和TimerTask的区别。通过源码分析,提出了解决内存泄漏的建议,如使用静态内部类,及时调用cancel()方法,以及关注内外类的生命周期。
摘要由CSDN通过智能技术生成

 

CountDownTimer的使用和内部类的内存管理

一、概述

在项目开发中经常会用到倒计时这个功能,而Android也帮我们封装好了一个类CountDownTimer,给我们的开发带来了很大的方便;

二、API

CountDownTimer (long millisInFuture, long countDownInterval) 参数1,设置倒计时的总时间(毫秒) 参数2,设置每次减去多少毫秒

三、基本用法

以App中获短信取验证码为例:

     private Button btn;

    private TextView vertifyView;  

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        initView();
    }
   private void initView(){
        vertifyView =(TextView) findViewById(R.id.vertifyView);
        btn =(Button) findViewById(R.id.button);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //1,请求后台...

                //2,触发定时器刷新UI(启动代码最好放在请求后台回调成功之后)
                timer.start();
            }
        });
    }

    private CountDownTimer timer = new CountDownTimer(10000, 1000) {  

        @Override  
        public void onTick(long millisUntilFinished) {  
            vertifyView.setText((millisUntilFinished / 1000) + "秒后可重发");  
        }  

        @Override  
        public void onFinish() {  
            vertifyView.setEnabled(true);  
            vertifyView.setText("获取验证码");  
        }  
    };  

ok~这样一个基本的CountDownTimer案例就完成了

四,存在的问题

CountDownTimer如果使用不当,常常会报空指针异常,甚至造成严重的内存泄漏 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值