zoukankan      html  css  js  c++  java
  • Android之循环执行次数のHandler&Runnable

    要求:隔2秒执行一次,执行三次后不执行。

    代码:

     1 package com.bvin.android.test.handler;
     2 
     3 import java.text.SimpleDateFormat;
     4 import java.util.Date;
     5 
     6 import android.app.Activity;
     7 import android.os.Bundle;
     8 import android.os.Handler;
     9 import android.util.Log;
    10 
    11 public class AndroidTest_HandlerActivity extends Activity {
    12     /** Called when the activity is first created. */
    13     private Handler handler = new Handler();
    14     private Runnable runnable  = new Runnable(){//推送runnable,定期2s执行一次
    15 
    16 
    17 
    18         @Override
    19         public void run() {
    20             // TODO Auto-generated method stub
    21             Log.e("计时后", printCurTime());
    22             handler.postDelayed(runnable, 2000);
    23         }
    24         
    25     };
    26     private Runnable runRemove  = new Runnable(){//移除runnable,在6s后移除
    27 
    28 
    29 
    30         @Override
    31         public void run() {
    32             // TODO Auto-generated method stub
    33             
    34             handler.removeCallbacks(runnable);
    35         }
    36         
    37     };
    38     private String  printCurTime(){//获取当前时间
    39 
    40         SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");//格式样式
    41         Date date = new Date(System.currentTimeMillis());//建立当前日期
    42         //format.format(date)格式化日期时间
    43         return format.format(date);
    44     }
    45     @Override
    46     public void onCreate(Bundle savedInstanceState) {
    47         super.onCreate(savedInstanceState);
    48         setContentView(R.layout.main);
    49         Log.e("计时前", printCurTime());
    50         handler.post(runnable);//定期执行
    51         handler.postDelayed(runRemove, 6000);//过6秒后执行
    52         
    53     }
    54 }

    结果:

      这两句前后没多大区别。

    1.handler.postDelayed(runRemove, 6000)放后面。

    handler.post(runnable);//定期执行
    handler.postDelayed(runRemove, 6000);//过6秒后执行

    2.handler.postDelayed(runRemove, 6000)放前面。

    handler.postDelayed(runRemove, 6000);//过6秒后执行
    handler.post(runnable);//定期执行

     

  • 相关阅读:
    springboot和springcloud运行在外部tomcat
    kafka-线上单机broker扩容
    kafka集群部署和测试
    k8s-学习笔记2-容器部署nginx负载均衡
    logstash部署
    docker-学习笔记7-dockerfile
    kafka常用命令
    kafka-消费滞后(Lag)监控
    kibana-部署
    es-部署
  • 原文地址:https://www.cnblogs.com/bvin/p/2517846.html
Copyright © 2011-2022 走看看