Android三种实现定时器的方法
来源:互联网 发布:win10抗锯齿软件 编辑:程序博客网 时间:2024/05/18 09:21
方法一: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 HanderDemoActivityextends 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...");
- }
- }
- }
- }
- }
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;@Overridepublic 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 {@Overridepublic void run() {// TODO Auto-generated method stubwhile (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 blocke.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 HanderDemoActivityextends 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...");
- }
- }
- };
- }
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;@Overridepublic 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() {@Overridepublic void run() {// handler自带方法实现定时器try {handler.postDelayed(this, TIME);tvShow.setText(Integer.toString(i++));System.out.println("do...");} catch (Exception e) {// TODO Auto-generated catch blocke.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 HanderDemoActivityextends 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);
- }
- };
- }
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;@Overridepublic 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() {@Overridepublic void run() {// 需要做的事:发送消息Message message = new Message();message.what = 1;handler.sendMessage(message);}};}
- Android三种实现定时器的方法
- Android三种实现定时器的方法
- Android三种实现定时器的方法
- Android三种实现定时器的方法
- Android三种实现定时器的方法
- Android三种实现定时器的方法
- Android三种实现定时器的方法
- Android三种实现定时器的方法
- Android三种实现定时器的方法
- Android三种实现定时器的方法
- Android三种实现定时器的方法
- Android三种实现定时器的方法
- Android三种实现定时器的方法
- Android三种实现定时器的方法
- Android三种实现定时器的方法
- Android三种实现定时器的方法
- Android三种实现定时器的方法
- Android三种实现定时器的方法
- winpcap数据包分析
- C51,ARM,AVR,PIC单片机,PLC
- Mysql设置Blob数据类型存储大小
- JDBC for rdf3x
- C程序设计课程-2012电子信息 第五堂课后作业
- Android三种实现定时器的方法
- c++ 操作符优先级
- php的session阻塞问题
- 用计算机字符表示表情
- 携程最大的问题在于建立了一个商业帝国以后有些不思进取
- 贝叶斯学习基本概念
- 解决数据库文件只有mdf 文件没有log file问题的方法
- TFI
- 张小龙:我做产品与微信的逻辑