定时器有什么用

在我们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里面的开启定时器那么定时器就开启了所以这样就避免了因为定时器开
       启而使程序崩溃

  

Android 定时器Timer的使用的更多相关文章

  1. Android定时器Timer.schedule

    Timer是一种定时器工具,用来在一个后台线程计划执行指定任务.它可以计划执行一个任务一次或反复多次.TimerTask一个抽象类,它的子类代表一个可以被Timer计划的任务. schedule的意思 ...

  2. Android定时器,推荐ScheduledThreadPoolExecutor

    Android定时器,推荐ScheduledThreadPoolExecutor 官方网址:http://developer.android.com/reference/java/util/Timer ...

  3. Android定时器功能实现方法

    在Android开发中,定时器一般有以下3种实现方法: 1.采用Handler与线程的sleep(long)方法 2.采用Handler的postDelayed(Runnable, long)方法 3 ...

  4. 【转】 Android定时器

    转载自:http://www.android-study.com/pingtaikaifa/508.html 在Android开发中,定时器一般有以下3种实现方法: 一.采用Handler与线程的sl ...

  5. python中实现定时器Timer

    实现定时器最简单的办法是就是循环中间嵌time.sleep(seconds), 这里我就不赘述了 # encoding: UTF-8 import threading #Timer(定时器)是Thre ...

  6. 订餐系统之定时器Timer不定时

    经过几天漫长的问题分析.处理.测试.验证,定时器Timer终于定时了,于是开始了这篇文章,希望对还在纠结于“定时器Timer不定时”的同学有所帮助,现在的方案,在系统日志中会有警告,如果您有更好的方案 ...

  7. android定时器

    Handler+Timer+TimerTask 三.采用Handler与timer及TimerTask结合的方法. 1.定义定时器.定时器任务及Handler句柄 private final Time ...

  8. PHP框架Swoole的一个定时器Timer特性

    在各种业务型系统中,往往需要服务器在后台扫描相关数据,触发相应的统计.通知等操作. 比如对于一个项目管理系统,需要每天的特定时间内,统计每项任务的执行.到期情况.整个项目的进度等等,根据统计情况,做相 ...

  9. C#创建windows服务搭配定时器Timer使用实例(用代码做,截图版)

       功能说明:C#创建一个windows服务,服务启动时D:\mcWindowsService.txt写入数据,服务运行期间每隔两秒写入当前时间. 原理这些就不说了,三语两语说不清楚,直接贴一个实例 ...

随机推荐

  1. [Flutter] Creating, Importing & Using Dynamic Widgets from Other Files in a Flutter Application

    In this lesson we’ll learn how to import widgets we’ve created in other files & use them in our ...

  2. apache添加mod_limitipconn限制单个ip并发连接数

    一.基本 官网:http://dominia.org/djao/limitipconn2.html 二.安装 1.下载#wget http://dominia.org/djao/limit/mod_l ...

  3. 在LoadRunner脚本中实现随机ThinkTime

    一般情况下,我们都是通过Run-Time Settings来设置Think Time(思考时间),可以设置回放脚本时忽略思考时间,或者是设置回放随机的一段思考时间. By default, when ...

  4. windows盘符操作

    subst subst x: /d subst y: e:\

  5. C语言-Makefile经典教程(掌握这些足够)

     makefile很重要 什么是makefile? 或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional 的 ...

  6. 更改 easyUI 的皮肤样式

    我的版本是:jquery-easyui-1.3.2.根据官方提供的皮肤样式,——在theme 里面: 只需要在引入的 页面中 link样式的地址改变即可: <link rel="sty ...

  7. spring学习笔记(四)

    1.aop编程 a.前置通知 .... <!-- 配置被代理的对象 -->    <bean id="test1Service" class="com. ...

  8. win8 应用商店。 app下载的音乐和视频软件能打开,不能正常播放 解决方法

    win8 应用商店.app下载的音乐和视频软件能打开,不能正常播放 安装完win8之后,下载了PPS,可以正常播放.但是过了几天之后,就不能播放了,又从网络上下载了其他的音乐和视频相关的软件, 都不可 ...

  9. Linux中如何配置IP

      与网络相关的文件:1) /etc/sysconfig/network   设置主机名称及能否启动Network2) /etc/sysconfig/network-scripts/ifcfg-eth ...

  10. Lucene4.0 LogMergePolicy

    其特点是给定的段列表顺序归并,不像TieredMergePolicy那样按大小排序之后决定. norm = log(10),levelFloor=log(minMergeSize)/norm,对段列表 ...