一般来说,在Android中有很多地方都要用到定时执行或者延迟执行,这里给记录一下两种比较常见的方法

1.采用Handler的postDelayed(Runnable, long)方法,比较简单也很实用

下面就直接上代码 就定时刷新一下webView,很简单的案例

    private DaciWebView mWebView;    public static final String TEXTURL = "http://172.30.106.162:8080/text.html";    Handler handler = new Handler();    Runnable runnable = new Runnable() {        @Override        public void run() {            //要执行的事件            add();            Toast.makeText(getApplicationContext(),"我是刷新出来的",Toast.LENGTH_SHORT).show();            handler.postDelayed(this, 600000);        }    };    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        mWebView = (DaciWebView) findViewById(R.id.webview);        add();        handler.postDelayed(runnable, 600000);//每10分钟执行一次runnable.    }    /**     * 页面启动     */    public void add() {        mWebView.loadUrl(TEXTURL);    }    @Override    protected void onStop() {        handler.removeCallbacks(runnable);        super.onStop();    }}

第一种方法就是这样就可以了 必须在关闭界面的时候停止消息的发送,否则会一直在后台发送

handler.removeCallbacks(runnable);



   

2.采用Handler与timer及TimerTask结合的方法,可以在任务多的时候使用,直接写主要代码了

首先,定义定时器,以及Handler:

private final Timer timer = new Timer();  private TimerTask task;  Handler handler = new Handler() {      @Override      public void handleMessage(Message msg) {          // 想要执行的事件        super.handleMessage(msg);      }  };  
初始化:
task = new TimerTask() {      @Override      public void run() {          // TODO Auto-generated method stub          Message message = new Message();          message.what = 1;          handler.sendMessage(message);      }  };   

启动计时器:

timer.schedule(task, 5000, 5000);  

最后停止:

timer.cancel(); 


就这样吧!


更多相关文章

  1. Android编译本地C++程序方法
  2. 【Android代码片段之八】监听Android屏幕是否锁屏
  3. Android开发者网站打不开的解决方法
  4. android sdk manager 无法更新解决方法
  5. Android下app生成coredump方法
  6. 详细讲解下Hook技术,以Hook点击事件来示范
  7. Android Studio 活动的最佳实践 知晓当前是在哪一个活动 随时随
  8. Android使用webview调用js方法传参,参数无法传入的问题
  9. android 事件派发流程详解

随机推荐

  1. Android实现带动画效果的Tab Menu
  2. Android学习(三)
  3. Android:控件布局(线性布局)LinearLayout
  4. Android抛出异常NetworkOnMainThreadExce
  5. (翻译)Android中的定时任务
  6. Ndk(jni)调用第三方的so库
  7. Ubuntu下搭建Android NDK开发环境
  8. View类xml属性、方法
  9. Android 启动过程分析 (二)
  10. Android设备获取wifi下的ipv6地址