方法一:Handler+Thread

[java] view plain copy
  1. packagecom.xunfang.handerDemo;
  2. importandroid.app.Activity;
  3. importandroid.os.Bundle;
  4. importandroid.os.Handler;
  5. importandroid.os.Message;
  6. importandroid.widget.TextView;
  7. /**
  8. *handler定时器
  9. *
  10. *@authorSmalt
  11. *
  12. */
  13. publicclassHanderDemoActivityextendsActivity{
  14. TextViewtvShow;
  15. privateinti=0;
  16. @Override
  17. publicvoidonCreate(BundlesavedInstanceState){
  18. super.onCreate(savedInstanceState);
  19. setContentView(R.layout.main);
  20. tvShow=(TextView)findViewById(R.id.tv_show);
  21. newThread(newThreadShow()).start();
  22. }
  23. //handler类接收数据
  24. Handlerhandler=newHandler(){
  25. publicvoidhandleMessage(Messagemsg){
  26. if(msg.what==1){
  27. tvShow.setText(Integer.toString(i++));
  28. System.out.println("receive....");
  29. }
  30. };
  31. };
  32. //线程类
  33. classThreadShowimplementsRunnable{
  34. @Override
  35. publicvoidrun(){
  36. //TODOAuto-generatedmethodstub
  37. while(true){
  38. try{
  39. Thread.sleep(1000);
  40. Messagemsg=newMessage();
  41. msg.what=1;
  42. handler.sendMessage(msg);
  43. System.out.println("send...");
  44. }catch(Exceptione){
  45. //TODOAuto-generatedcatchblock
  46. e.printStackTrace();
  47. System.out.println("threaderror...");
  48. }
  49. }
  50. }
  51. }
  52. }

方法二:Handler类自带的postDelyed

[java] view plain copy
  1. packagecom.xunfang.handerDemo;
  2. importandroid.app.Activity;
  3. importandroid.os.Bundle;
  4. importandroid.os.Handler;
  5. importandroid.widget.TextView;
  6. /**
  7. *handler定时器使用postDelyed实现
  8. *
  9. *@authorSmalt
  10. *
  11. */
  12. publicclassHanderDemoActivityextendsActivity{
  13. TextViewtvShow;
  14. privateinti=0;
  15. privateintTIME=1000;
  16. @Override
  17. publicvoidonCreate(BundlesavedInstanceState){
  18. super.onCreate(savedInstanceState);
  19. setContentView(R.layout.main);
  20. tvShow=(TextView)findViewById(R.id.tv_show);
  21. handler.postDelayed(runnable,TIME);//每隔1s执行
  22. }
  23. Handlerhandler=newHandler();
  24. Runnablerunnable=newRunnable(){
  25. @Override
  26. publicvoidrun(){
  27. //handler自带方法实现定时器
  28. try{
  29. handler.postDelayed(this,TIME);
  30. tvShow.setText(Integer.toString(i++));
  31. System.out.println("do...");
  32. }catch(Exceptione){
  33. //TODOAuto-generatedcatchblock
  34. e.printStackTrace();
  35. System.out.println("exception...");
  36. }
  37. }
  38. };
  39. }

方法三:

Handler+Timer+TimerTask

[java] view plain copy
  1. packagecom.xunfang.handerDemo;
  2. importjava.util.Timer;
  3. importjava.util.TimerTask;
  4. importandroid.app.Activity;
  5. importandroid.os.Bundle;
  6. importandroid.os.Handler;
  7. importandroid.os.Message;
  8. importandroid.widget.TextView;
  9. /**
  10. *定时器实现:Handler+Timer+TimerTask
  11. *
  12. *@authorSmalt
  13. *
  14. */
  15. publicclassHanderDemoActivityextendsActivity{
  16. TextViewtvShow;
  17. privateinti=0;
  18. privateintTIME=1000;
  19. @Override
  20. publicvoidonCreate(BundlesavedInstanceState){
  21. super.onCreate(savedInstanceState);
  22. setContentView(R.layout.main);
  23. tvShow=(TextView)findViewById(R.id.tv_show);
  24. timer.schedule(task,1000,1000);//1s后执行task,经过1s再次执行
  25. }
  26. Handlerhandler=newHandler(){
  27. publicvoidhandleMessage(Messagemsg){
  28. if(msg.what==1){
  29. tvShow.setText(Integer.toString(i++));
  30. }
  31. super.handleMessage(msg);
  32. };
  33. };
  34. Timertimer=newTimer();
  35. TimerTasktask=newTimerTask(){
  36. @Override
  37. publicvoidrun(){
  38. //需要做的事:发送消息
  39. Messagemessage=newMessage();
  40. message.what=1;
  41. handler.sendMessage(message);
  42. }
  43. };
  44. }

更多相关文章

  1. Android实现定时器的方法
  2. Android(安卓)PackageManager 卸载包的方法
  3. Android(安卓)P ActivityManagerService(六) startActivity的第四
  4. Android(安卓)View.startAnimation()动画
  5. Android全屏的两种方法
  6. Android学习笔记4——Activity的生命周期
  7. android 監聽系統屬性變化的方法
  8. 浅谈Java中Collections.sort对List排序的两种方法
  9. Python list sort方法的具体使用

随机推荐

  1. Android(安卓)渐变drawable背景
  2. ImageVIew 设置图片大小
  3. Android中蓝牙使用步骤小结
  4. Issues with db4o in latest versions of
  5. Android唯一标识
  6. Android(安卓)Studio(三):设置Android(安
  7. android 学习总结
  8. 编译Android内核模块
  9. 如何在android中实现圆角显示
  10. 调整 FMX Android(安卓)文字显示「锯齿」