博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 定时器Timer的使用
阅读量:4710 次
发布时间:2019-06-10

本文共 2050 字,大约阅读时间需要 6 分钟。

     定时器有什么用

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

    

 

转载于:https://www.cnblogs.com/huihuizhang/p/10744780.html

你可能感兴趣的文章
稳定排序
查看>>
@Repository、@Service、@Controller 和 @Component
查看>>
bootstrap-wysihtml5设置值
查看>>
Windows常用快捷键与常用命令
查看>>
290. Word Pattern 单词匹配模式
查看>>
project1
查看>>
mySQL优化, my.ini 配置说明
查看>>
alwayson监控
查看>>
浅谈 js 函数调用
查看>>
进程与线程
查看>>
python面试题
查看>>
MySQL 数据备份与还原
查看>>
Android Camera2 参数调节关键字翻译集合,常用关键字解析
查看>>
NSMutableString 常用操作
查看>>
php-Mysql示例1
查看>>
python第三方库requests学习笔记
查看>>
Oracle基本查询语言
查看>>
Word直接发表博客测试
查看>>
sublime text2 中Emmet常用的技巧 和快捷键
查看>>
浏览器对应用程序的根URL发出请求时所发生的情况(结合 DI)
查看>>