美文网首页Android开发
Android 定时器Timer的使用

Android 定时器Timer的使用

作者: w_xiaowudi | 来源:发表于2017-05-19 01:08 被阅读0次

定时器有什么用

在我们Android客户端上有时候可能有些任务不是当时就执行,而是过了一个规定的时间在执行此次任务。那么这个时候定时器的作用就非常有用了。首先开启一个简单的定时器

 Timer timer = new Timer();
    TimerTask task = new TimerTask() {
        @Override
        public void run() {
            try {
                holder.post(url,"",200);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    };

现在我就相当于定义了一个定时器,我现在的定时器是向服务器发送Post请求来返回数据刷新到我的界面上那么接下来就是开启定时器了。开启定时器那就非常简单了

  timer.schedule(task,0,10000);

开启定时器特别简单基本上一句话就搞定了
开启定时器需要三个参数
1.就是上面所写的你要做的事情 ,上面我写的上向网络发送请求那么这里就时开启定时器请求网络
2.这个参数是你要多长时间后执行这个定时器,这里我写的是0,那么就是0秒后执行我的定时器。
3.这个是最重要的这就是你每次执行时间的间隔 我这里就是说每10秒向网络发送一次请求如果写成1000就是每一秒向网络发送一次请求

如果第三个参数不写的话那么定时器就是几秒后执行 那么定时器只执行一次就不在执行了

定时器的请求周期

其实定时器如果不销毁的话是一直执行的但其实定时器如果一直执行的话那么我们的程序根本就撑不了多长时间就会崩溃所以说定时器用完就要及时的关闭
定时器的开启在写Fragment或者Activity的时候我一般会写在onStart里面
如果销毁的时候会写在onStop里面销毁定时器也非常简单

   timer.cancel();

基本上这一句话就搞定了执行这句话说明是注销定时器
当我们离开本界面的时候就执行这句话那么定时器就不会在执行了当我们进入本界面在onStart执行定时器那么就又开启了定时器所以说这样就写了一个简易版的定时器

public class WhiteFragment extends Fragment{

Handler handler = new Handler(){
     public void handleMessage(Message msg){
        switch(msg.what){
            case 200:
             "执行我要做的事情用来刷新UI"
      }
   }
}

   private String url = 
    "http://ip地址:8080/2017guosaiserver/GetAllSense";
    HttpHolder holder = new HttpHolder(handler);

   Timer timer = new Timer();
    TimerTask task = new TimerTask() {
        @Override
        public void run() {
            try {
                holder.post(url,"",200);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    };
}
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.whitefragment,null);
        return view;
}
 @Override
    public void onStart() {
        super.onStart();
        timer.schedule(task,0,10000);
    }

    @Override
    public void onStop() {
        super.onStop();
        timer.cancel();
    }
}

一个简单的定时器请求网络就完成了 HttpHolder holder = new HttpHolder(handler); 这是自己写的网络请求类直接调用输入url的服务器地址获得的就是服务器发来的JSON格式的数据
在onStop里面注销定时器那么每次离开本界面的时候那么定时候就销毁了再回到本界面的时候那么就执行onStart里面的开启定时器那么定时器就开启了所以这样就避免了因为定时器开启而使程序崩溃

相关文章

  • 定时器 Timer

    定时器 Timer [toc] 定时器 Timer 的使用 Timer 类主要负责计划任务的功能,也就是在指定时间...

  • Java可自定义中断定时器的实现

    Java定时器的实现一般使用的是Timer和ScheduledExecutorService 使用Timer的时候...

  • Timer 实现倒计时功能

    Android 定时器 在Android开发中有些任务是需要通过延时来完成的,这个时候就用到了定时器Timer

  • GCD 定时器使用

    定时器有很多种实现方式,我们经常使用的定时器就是Timer了,然而 Timer 是基于线程的Runloop的,当执...

  • Android 定时器Timer的使用

    定时器有什么用 在我们Android客户端上有时候可能有些任务不是当时就执行,而是过了一个规定的时间在执行此次任务...

  • RxSwift中的Timer

    RxSwift中的Timer 我们在项目中经常会用到定时器,先来看下swift中使用定时器的几种方式: Timer...

  • 13. Jmeter-定时器

    Jmeter-定时器介绍与使用 固定定时器 Uniform Random Timer Precise Throug...

  • 【Android 基础】AlarmManager 使用

    项目中使用到定时任务,使用Timer 与 TimerTask 类完成定时,但 app 退出后,Timer 定时器会...

  • iOS 计时器

    GCD定时器 Dispatch Source Timer 是一种与 Dispatch Queue 结合使用的定时器...

  • 【golang】定时器的使用

    一.一次性定时器Timer,定时器停止timer.Stop(),定时器重置timer.Reset() 二.周期定时...

网友评论

    本文标题:Android 定时器Timer的使用

    本文链接:https://www.haomeiwen.com/subject/uzmexxtx.html