Android 는 Handler 를 사용 하여 타이머 와 카운트다운 기능 을 실현 합 니 다.

Handler 가 뭐야?
    Handler 는 안 드 로 이 드 메시지 체제 의 상부 인터페이스 로 우 리 를 위해 많은 하부 디 테 일 을 밀봉 하여 우리 로 하여 금 하부 메시지 체 제 를 편리 하 게 사용 할 수 있 게 한다.Handler 의 가장 흔 한 응용 장면 중 하 나 는 Handler 를 통 해 서브 스 레 드 에서 UI 를 간접 적 으로 업데이트 하 는 것 이다.Handler 의 역할 은 주로 두 가지 가 있 습 니 다.하 나 는 메 시 지 를 보 내 는 것 입 니 다.둘째,메 시 지 를 처리 하 는 것 입 니 다.그 운영 은 바 텀 Looper 와 Message Queue 의 기반 이 필요 합 니 다.Message Queue 는 메시지 대기 열 입 니 다.바 텀 은 단일 체인 시트 로 이 루어 집 니 다.Looper 는 하나의 순환 에서 Message Queue 에서 메 시 지 를 계속 가 져 오 는 것 을 책임 지고 가 져 오 면 Handler 에 맡 기 고 그렇지 않 으 면 기다 리 고 있 습 니 다.Looper 에 대해 주의해 야 할 점 은 메 인 라인 을 제외 한 다른 라인 에 기본적으로 Looper 가 존재 하지 않 는 다 는 것 입 니 다.주 스 레 드 에 존재 하 는 이 유 는 Activity Thread 가 생 성 될 때 Looper 를 초기 화 하 는 작업 이 완료 되 기 때 문 입 니 다.
특성
지원 동작:
start
pause
resume
cancel
쓰다

allprojects {
 repositories {
 ...
 maven { url 'https://jitpack.io' }
 }
}
dependencies {
 ...
 compile 'com.github.xesam:AndroidTimer:v0.1'
}
TODO
 add ticker sequence
쓰다
CountTimer

 new CountTimer(100) {
 @Override
 public void onTick(long millisFly) { // millisFly is the Elapsed time at *Running State*
  vCountSwitcher.setText((millisFly) + "");
  Log.d("onTick", millisFly + "");
 }
 };
CountDownTimer

 new CountDownTimer(10_000, 100) {
 @Override
 public void onTick(long millisUntilFinished) { // millisUntilFinished is the left time at *Running State*
  Log.d("onTick", millisFly + "");
 }
 @Override
 public void onCancel(long millisUntilFinished) {
 }
 @Override
 public void onPause(long millisUntilFinished) {
 }
 @Override
 public void onResume(long millisUntilFinished) {
 }
 @Override
 public void onFinish() {
 }
 };
하나의 Handler 를 사용 하여 여러 정시 작업 을 동시에 관리 합 니 다.
여러 작업 생 성:

MultiCountTimer multiCountTimer = new MultiCountTimer(100);
 multiCountTimer.add(new CounterTimerTask(1) {
  @Override
  public void onTick(long millisFly) {
  vMulti1.setText("multi_1:" + millisFly);
  }
 }).registerTask(new CounterTimerTask(2, 100) {
  @Override
  public void onTick(long millisFly) {
  vMulti2.setText("multi_2:" + millisFly);
  }
 }).registerTask(new CounterTimerTask(3, 1000) {
  @Override
  public void onTick(long millisFly) {
  vMulti3.setText("multi_3:" + millisFly);
  }
 });
 multiCountTimer.startAll();
작업 취소:

 multiCountTimer.cancel(2);
   
 multiCountTimer.cancelAll();
캡 처:

총결산
위 에서 말 한 것 은 편집장 이 소개 한 안 드 로 이 드 가 Handler 를 사용 하여 타이머 와 카운트다운 기능 을 실현 하 는 것 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.편집장 은 신속하게 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기