Android 实现定时器的四种方式总结及实现实例_Android

Android中实现定时器的四种方式

第一种方式利用Timer和TimerTask

1、继承关系

java.util.Timer

基本方法

schedule

例如:

timer.schedule(task, delay,period);
//delay为long,period为long:从现在起过delay毫秒以后,每隔period毫秒执行一次。  

schedule方法有三个参数

第一个参数就是TimerTask类型的对象,我们实现TimerTask的run()方法就是要周期执行的一个任务;

第二个参数有两种类型,第一种是long类型,表示多长时间后开始执行,另一种是Date类型,表示从那个时间后开始执行;

第三个参数就是执行的周期,为long类型。

2、

TimerTask task= new TimerTask() {
     @Override
     public void run() {
        count++;
        Log.i("MainActivity",count + "");
     }
};

//以下是几种调度task的方法:

//time为Date类型:在指定时间执行一次。
timer.schedule(task, time);
//firstTime为Date类型,period为long,表示从firstTime时刻开始,每隔period毫秒执行一次。
timer.schedule(task, firstTime,period);
//delay 为long类型:从现在起过delay毫秒执行一次。
timer.schedule(task, delay);
//delay为long,period为long:从现在起过delay毫秒以后,每隔period毫秒执行一次。
timer.schedule(task, delay,period);

注意:task应该在onDestory()中取消掉,否则可能发生崩溃

3、用TimerTask定时进行某些操作的APP,即使退出了,TimerTask中依然会运行一会,但是不能长时间运行

第二种方式 使用CountDownTimer

1、Demo

CountDownTimer cdt = new CountDownTimer(10000, 100) {
  @Override
  public void onTick(long millisUntilFinished) {
    tv_hello.setText(millisUntilFinished + "");
  }
  @Override
  public void onFinish() { 

  }
}; 

cdt.start();

2、上面的例子是

每隔100毫秒执行onTick中的方法一次
直到执行完10000/100次为止,最后会执行onFinish()中的方法

第三种方式 AlarmManager

demo:

Intent intent2 = newIntent(ReadLogService.this,TestBroadcast.class);
PendingIntent pd =PendingIntent.getBroadcast(getApplicationContext(), 0, intent2,PendingIntent.FLAG_ONE_SHOT);
AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
long triggerTime =SystemClock.elapsedRealtime() + 5*1000;
am.set(AlarmManager.ELAPSED_REALTIME,triggerTime, pd); 

第四种方式 AlarmManager

handler.sendEmptyMessageDelayed(0, 4000);//启动handler,实现4秒定时循环执行
private Handler handler = new Handler(){
public voidhandleMessage(android.os.Message msg) { 

      if(isChange){
          //逻辑处理 

            handler.sendEmptyMessageDelayed(0,4000);//4秒后再次执行
      }
 }
}; 

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索android
实现定时器
android 定时器实现、java定时器timer实例、spring定时器配置实例、matlab定时器实例、jfinal 定时器实例,以便于您获取更多的相关知识。

时间: 2024-08-03 23:09:02

Android 实现定时器的四种方式总结及实现实例_Android的相关文章

Android 实现定时器的四种方式总结及实现实例

Android中实现定时器的四种方式 第一种方式利用Timer和TimerTask 1.继承关系 java.util.Timer 基本方法 schedule 例如: timer.schedule(task, delay,period); //delay为long,period为long:从现在起过delay毫秒以后,每隔period毫秒执行一次. schedule方法有三个参数 第一个参数就是TimerTask类型的对象,我们实现TimerTask的run()方法就是要周期执行的一个任务: 第二

android开发基础教程—三种方式实现xml文件解析_Android

1.sax方式 复制代码 代码如下: /** * 使用sax解析 */ public class SaxParse{ /** * sax解析器 */ private SAXParser parser; public SaxParse(){ try { SAXParserFactory f = SAXParserFactory.newInstance(); parser = f.newSAXParser(); } catch (ParserConfigurationException e) { e

Android异步更新UI的四种方式_Android

大家都知道由于性能要求,android要求只能在UI线程中更新UI,要想在其他线程中更新UI,大致有4种方式,下面分别使用四种方式来更新一个TextView.1.使用Handler消息传递机制 package com.example.runonuithreadtest; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.widget.TextView;

Android多线程的四种方式

当我们启动一个App的时候,Android系统会启动一个Linux Process,该Process包含一个Thread,称为UI Thread或Main Thread.通常一个应用的所有组件都运行在这一个Process中,当然,你可以通过修改四大组件在Manifest.xml中的代码块(<activity><service><provider><receiver>)中的android:process属性指定其运行在不同的process中.当一个组件在启动的

Android异步更新UI的四种方式

大家都知道由于性能要求,android要求只能在UI线程中更新UI,要想在其他线程中更新UI,大致有4种方式,下面分别使用四种方式来更新一个TextView. 1.使用Handler消息传递机制 package com.example.runonuithreadtest; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.widget.TextView;

android全局监控click事件的四种方式(小结)

本文主要给大家分享如何在全局上去监听 click 点击事件,并做些通用处理或是拦截.使用场景可能就是具体的全局防快速重复点击,或是通用打点分析上报,用户行为监控等.以下将以四种不同的思路和实现方式去监控全局的点击操作,由简单到复杂逐一讲解. 方式一,适配监听接口,预留全局处理接口并作为所有监听器的基类使用 抽象出公共基类监听对象,可预留拦截机制和通用点击处理,简要代码如下: public abstract class CustClickListener implements View.OnCli

Android 启动activity的4种方式及打开其他应用的activity的坑_Android

Android启动的四种方式分别为standard,singleTop,singleTask,singleInstence. standard是最常见的activity启动方式,也是默认的启动的方式.当启动一个activity的时候他将进入返回栈的栈顶.系统不会管栈内是否有相同的activity,方式像后入先出. singleTop方式是在活动启动的时候,系统先判定栈顶是否有相同的活动,如果没有则新建活动,否则将不新建活动.而是直接使用他. singleTask方式在活动启动的时候,系统先判定栈

Android View移动的3种方式总结_Android

前言 在Android开发中,View一直是Android开发人员的一块心病,一方面想要进阶,一方面又害怕进阶,可以说Android的View是进阶路上的最大绊脚石,因为它涉及的东西太多了,比如本次我们此次要写的View移动,另外还包括View的触摸事件的传递,创建自定义View,这些都是极其重要且不得不面对的难题.但是无论如何,现在不克服的困难将来就会被困难克服. 在此之前,我们还是先了解Android坐标系的定义规则以及View的一些位置参数. Android坐标系 View的位置及大小是由

Android 更新UI的几种方式

1.Activity的 runOnUiThread    textView = (TextView) findViewById( R.id.tv ); new Thread(new Runnable() { @Override public void run() { runOnUiThread(new Runnable() { @Override public void run() { textView.setText( "更新UI了"); } }); } }).start(); an