handler------post传送方式

 1 package com.qianfeng.gp08_day26_hanlder2;
 2
 3 import android.os.Bundle;
 4 import android.os.Handler;
 5 import android.app.Activity;
 6 import android.view.Menu;
 7 import android.view.View;
 8 import android.widget.Button;
 9 import android.widget.TextView;
10
11 public class MainActivity extends Activity {
12
13     private TextView textView;
14     private Button btn1,btn2;
15     private Handler handler = new Handler();
16     private int count;
17     private boolean isStop;
18     @Override
19     protected void onCreate(Bundle savedInstanceState) {
20         super.onCreate(savedInstanceState);
21         setContentView(R.layout.activity_main);
22
23         textView = (TextView) findViewById(R.id.textView);
24         btn1 = (Button) findViewById(R.id.btn1);
25         btn2 = (Button) findViewById(R.id.btn2);
26
27         btn2.setEnabled(false);
28
29     }
30
31     public void startTime(View v)//开始计时
32     {
33         isStop = false;
34         btn1.setEnabled(false);
35         btn2.setEnabled(true);
36         new Thread(new Runnable(){
37
38             @Override
39             public void run() {
40                 // TODO 向主线程发送计数
41                  count=0;
42                 while(!isStop)
43                 {
44                     handler.post(new Runnable(){
45                         @Override
46                         public void run() {
47                             textView.setText("计数器:"+count++);
48                         }
49                     });
50                     try {
51                         Thread.sleep(1000);
52                     } catch (InterruptedException e) {
53                         e.printStackTrace();
54                     }
55                 }
56             }
57
58         }).start();
59     }
60
61     public void stopTime(View v)
62     {
63         btn1.setEnabled(true);
64         btn2.setEnabled(false);
65         isStop = true;
66     }
67 }

mainActivity

时间: 2024-10-25 22:21:08

handler------post传送方式的相关文章

Posted和Non-Posted传送方式

PCI总线规定了两类数据传送方式,分别是Posted和Non-Posted数据传送方式.其中使用Posted数据传送方式的总线事务也被称为Posted总线事务:而使用Non-Posted数据传送方式的总线事务也被称为Non-Posted总线事务. Posted总线事务指PCI主设备向PCI目标设备进行数据传递时,当数据到达PCI桥后,即由PCI桥接管来自上游总线的总线事务,并将其转发到下游总线.采用这种数据传送方式,在数据还没有到达最终的目的地之前,PCI总线就可以结束当前总线事务,从而在一定程

Handler消息传递机制(三)Message消息的两种发送方式

这里布局和mainfest的定义省了,直接看样例 package com.example.message2; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class Ma

DMA方式的数据传送过程

DMA方式具有如下特点: 1. 外部设备的输入输出请求直接发给主储存器. 主存储器既可以被CPU访问,也可以被外围设备访问.因此,在主存储器中通常要有一个存储管理部件来为各种访问主存储器的申请排队,一般计算机系统把外围设备的访问申请安排在最高优先级. 2. 不需要做保存现场和恢复现场等工作,从而使DMA方式的工作速度大大加快. 由于在外围设备与主存储器之间传送数据不需要执行程序,因此,也不动用CPU中的数据寄存器和指令计数器等. 3.在DMA控制器中,除了需要设置数据缓冲寄存器.设备状态寄存器或

ThinkPHP以jquery传送json数据格式的方式实现ajax请求

在之前我这里是失败过很多次的,有的时候甚至不得不采用get的传送方式,另外,thinkphp自带的ajax->return方法并不能够解决问题,而且会让问题变得更加复杂,与其不如直接使用jquery的方法,全部采用post提交的方式,get提交是没有任何的问题的,但是post提交问题就一个接一个.我就一直纳闷,为什么在但一脱离框架的页面就能够畅通无阻,这个问题非常的棘手.研究了好长时间终于发现问题所在了,jquery只是前端性的东西基本上和框架扯不上太大的关系,下面是对该问题的总结: 1: 不要

列举ASP.NET 页面之间传递值的几种方式

因为ASP.NET的页面表单提交到自身,完成回传的功能,所以默认情况下不能使用POST方式进行多页面传值. 1.使用QueryString, 如....?id=1; response. Redirect().... 将传送的值显示在浏览器的地址栏中,不能传递数组或对象.使用简单,对于安全性要求不高时传递数字或是文本值非常有效. 使用方法:1.在源页面的代码中用需要传递的名称和值构造URL地址. 2.在源页面的代码用Response.Redirect(URL);重定向到上面的URL地址中. 3.在

Android 第十四课——Handler Looper Message

1.基础概念 1)android.os.Handler 2)主要接受子线程发送的数据, 并用此数据配合主线程更新UI. 3)应用程序一旦启动,Android UI 这个主线程的生命周期就开始了,然而,Android UI 线程并不是线程安全的,也就是说,更新UI只能在主线程中同步更新,子线程中异步操作是危险的.所以,项目中如果我们直接new Thread 内部去更改Android UI,往往会报错误如下: java.lang.RuntimeException: Can't create hand

深入探索Android中的Handler

一.概述 1. 什么是Handler Handler是Android消息机制的上层接口,它为我们封装了许多底层的细节,让我们能够很方便的使用底层的消息机制.Handler的最常见应用场景之一便是通过Handler在子线程中间接更新UI.Handler的作用主要有两个:一是发送消息:二是处理消息,它的运作需要底层Looper和Message的支撑.MessageQueue即消息队列,它的底层用单链表实现:Looper则负责在一个循环中不断从MessageQueue中取消息,若取到了就交由Handl

Android--多线程之Handler

转载,感谢http://www.cnblogs.com/plokmju/p/android_handler.html 前言 Android的消息传递机制是另外一种形式的“事件处理”,这种机制主要是为了解决Android应用中多线程的问题,在Android中不允许Activity新启动的线程访问该Activity里的UI组件,这样会导致新启动的线程无法改变UI组件的属性值.但实际开发中,很多地方需要在工作线程中改变UI组件的属性值,比如下载网络图片.动画等等.本篇博客主要介绍Handler是如何发

【转】Android 定时器实现的几种方式和removeCallbacks失效问题详解--不错

原文网址:http://blog.csdn.net/xiaanming/article/details/9011193 实现定时器有很多种方式,在这里我简单的介绍几种方式 (1)使用Handler + Runnable的方式 [java] view plaincopy Handler handler = new Handler(); Runnable runnable = new Runnable() { @Override public void run() { //你要做的事 //.....