本文主要介绍 Android 定时器的知识资料,这里整理了三种方法来实现定时器的方法,有需要的小伙伴可以参考下。
方法一:Handler+Thread
- package com.xunfang.handerDemo;
- import android.app.Activity;
- import android.os.Bundle;
- import android.os.Handler;
- import android.os.Message;
- import android.widget.TextView;
- /**
- * handler定时器
- *
- * @author Smalt
- *
- */
- public class HanderDemoActivity extends Activity {
- TextView tvShow;
- private int i = 0;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- tvShow = (TextView) findViewById(R.id.tv_show);
- new Thread(new ThreadShow()).start();
- }
- // handler类接收数据
- Handler handler = new Handler() {
- public void handleMessage(Message msg) {
- if (msg.what == 1) {
- tvShow.setText(Integer.toString(i++));
- System.out.println("receive....");
- }
- };
- };
- // 线程类
- class ThreadShow implements Runnable {
- @Override
- public void run() {
- // TODO Auto-generated method stub
- while (true) {
- try {
- Thread.sleep(1000);
- Message msg = new Message();
- msg.what = 1;
- handler.sendMessage(msg);
- System.out.println("send...");
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- System.out.println("thread error...");
- }
- }
- }
- }
- }
方法二:Handler类自带的postDelyed
- package com.xunfang.handerDemo;
- import android.app.Activity;
- import android.os.Bundle;
- import android.os.Handler;
- import android.widget.TextView;
- /**
- * handler定时器使用postDelyed实现
- *
- * @author Smalt
- *
- */
- public class HanderDemoActivity extends Activity {
- TextView tvShow;
- private int i = 0;
- private int TIME = 1000;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- tvShow = (TextView) findViewById(R.id.tv_show);
- handler.postDelayed(runnable, TIME); //每隔1s执行
- }
- Handler handler = new Handler();
- Runnable runnable = new Runnable() {
- @Override
- public void run() {
- // handler自带方法实现定时器
- try {
- handler.postDelayed(this, TIME);
- tvShow.setText(Integer.toString(i++));
- System.out.println("do...");
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- System.out.println("exception...");
- }
- }
- };
- }
方法三:Handler+Timer+TimerTask
- package com.xunfang.handerDemo;
- import java.util.Timer;
- import java.util.TimerTask;
- import android.app.Activity;
- import android.os.Bundle;
- import android.os.Handler;
- import android.os.Message;
- import android.widget.TextView;
- /**
- * 定时器实现:Handler+Timer+TimerTask
- *
- * @author Smalt
- *
- */
- public class HanderDemoActivity extends Activity {
- TextView tvShow;
- private int i = 0;
- private int TIME = 1000;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- tvShow = (TextView) findViewById(R.id.tv_show);
- timer.schedule(task, 1000, 1000); // 1s后执行task,经过1s再次执行
- }
- Handler handler = new Handler() {
- public void handleMessage(Message msg) {
- if (msg.what == 1) {
- tvShow.setText(Integer.toString(i++));
- }
- super.handleMessage(msg);
- };
- };
- Timer timer = new Timer();
- TimerTask task = new TimerTask() {
- @Override
- public void run() {
- // 需要做的事:发送消息
- Message message = new Message();
- message.what = 1;
- handler.sendMessage(message);
- }
- };
- }
以上就是对Android 定时器的资料整理后续继续补充相关知识,谢谢大家的支持!
企业使用AI的一个复杂因素是,这个主题包含了多个不同的底层技术。这些技术中大...
本文转载自公众号读芯术(ID:AI_Discovery)。 神经网络和深度学习中的激活函数在...
最新研究显示,5G 网络在数据传输速率、接入密度等方面面临新的技术瓶颈,而6G ...
日前, 支付宝针对未持有互联网存款的用户,在理财页面对银行存款产品进行了下线...
由于冠状病毒疫情的影响改变了人们工作和生活的许多方面,其中一个改变的领域就...
刚开始学习软件工程的时候,我们经常会碰到像这样的事情: 软件应该符合 SOLID ...
1、 裘千丈轻功水上漂之UART 射雕英雄传中的裘千丈说,UART就是我的轻功水上漂过...
2月15日消息, 微信电脑端测试版更新到3.2.1版。 据悉,此次更新主要是围绕着视...
昨日晚间,知名苹果分析师郭明錤更新了有关美国封禁微信对苹果 iPhone 影响的报...
在AI模型开发的过程中,许多开发者被不够充足的训练数据挡住了提升模型效果的脚...