定时器有什么用

在我们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. Druid对比Hadoop

    Druid对比Hadoop Hadoop 向世界证明, 花费很少的钱实现典型的解决方案, 将数据保存在一般的商用机器的数据仓库里是可行的. 当人们将自己的数据保存在Hadoop, 他们发现两个问题   ...

  2. 【C/C++学院】0831-类与对象的异常/面试100题1-100

    类与对象的异常 Cpp异常 #include <iostream> #include <string.h> using namespace std; //标识错误的类型 cla ...

  3. 使用zbar 解码二维码 条形码

    #!/usr/bin/env python # coding: u8 import os import zbar import Image import urllib import uuid def ...

  4. TP框架中模糊查询实现

    TP框架中模糊查询实现 $where['g.name'] = array('like','%'.$groupname.'%'); 表达式查询 上面的查询条件仅仅是一个简单的相等判断,可以使用查询表达式 ...

  5. java学习路线-Java技术人员之路从0基础到高级

    满满的  全是干货 java基础: 尚学堂 马士兵   个人推荐 历经5年锤练--史上最适合刚開始学习的人入门的Java基础视频   很具体   适合 时间多的看 传智播客java基础班 马士兵线程 ...

  6. 解决window10系统电脑插入耳机之后没有声音的问题

    其实办法也是从百度百科上查到的 ⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄     可能是因为自己某个不小心的操作更改了设置 1. 首先要点开设置按钮,在搜索栏输入控制面板 (当然知道控制面板在哪里的小伙伴就不用 ...

  7. Codeforces 476C Dreamoon and Sums (水

    题目链接:点击打开链接 题意: 给定a,b 对于一个数x.若x是nice number,则满足(x/b)/(x%b) == [1,a](即结果在1-a之间) 问: 输出一个数表示 全部nice num ...

  8. es模板

    Index Templatesedit Index templates allow you to define templates that will automatically be applied ...

  9. Python内置函数之filter()

    filter(function,iterable)用来过滤可迭代对象 如果提供过滤条件的函数为None,则可迭代对象中为False的元素将被过滤掉. 例如: >>> a = [,,F ...

  10. FromHBITMAP 这个函数会丢失透明信息。

    在用 FromHBITMAP 你会发现出来的图是带有黑边的,这是因为这个函数有个 bug,解决的办法是用下列的函数进行转换,大体意思就是自己 memcpy 不要用 FromHBITMAP 函数. Bi ...