最近长沙天气有点让人抓狂了,宿舍更是睡觉禁地,大晚上睡不着觉,半夜惊醒,一身IT闷骚汗,嗨,又是难眠夜~_~
睡不着的时候就打开电脑,闲来无事,刚好前几天安卓入门,便突发奇想,弄一个计数器来数绵羊(当然,只是一个计数器,可能需要接入手机的音响端口才能发声吧),哈哈,全当是练习安卓上的线程应用小程序,路人就当看看热闹,大神见笑。
首先介绍一下,如果有部分java基础的同学就会觉得就用一个线程就ok了,安卓上应该也差不多吧,但这里要注意,安卓里的线程不能直接访问UI的组件,这里就需要用到安卓里的一个Hander对象。
hander英文有处理者的意思。他就相当于一个邮递员(介于主线程和子线程之间),他可以在邮局(主线程)和用户(子线程)之间传递信息。
当安卓启动一个主线程(邮局开门了),子线程(用户)通过Handler(邮递员)将Message(邮件)传给主线程的UI(邮局),这是大致的框架。
当然在细节方面,当我们发送消息的时候,会调用回调函数,即Callback接口对象,当线程发送数据过来时,会调用该几口的handMessage方法。
代码如下:
package com.example.count; import android.os.Bundle; import android.os.Handler; import android.os.Handler.Callback; import android.os.Message; import android.app.Activity; import android.widget.TextView; public class MainActivity extends Activity { //文本视窗 private TextView timeView; //创建Handler对象:把Callback对象通过构造方法传进去, //在子线程中调用主线程中的hander对象把Message对象发送出去 private Handler handler; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //通过文本的ID获取文本的内容对象 timeView = (TextView)findViewById(R.id.timeView); //创建回调接口对象,当handler接收到消息时调用该接口的 //handleMessage方法,此处采用匿名内部类重写hanleMessage方法 Callback callback = new Callback(){ public boolean handleMessage(Message msg){ //这里可以直接访问ui上的组件 int second = msg.arg1; //更新数据在界面上的显示 timeView.setText(String.valueOf(second)); return true; } }; //创建Handle对象 handler = new Handler(callback); //创建计时线程,此为子线程 Thread t = new Thread(){ int second = 0; public void run(){ //休眠1s,实现计时效果 while(true){ try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } second++; //通过Message对象传递数据 Message msg = new Message(); //通过Message对象传递数据 msg.arg1 = second; //通过 handler对象接收消息,并调用上面写的回调Callback对象的 //handleMessage方法 handler.sendMessage(msg); } } }; //在主线程中启动子线程 t.start(); } }
以上纯属小弟愚见,有问题虚心接受。
相关推荐
集成二-五-十计数器的应用 (2).docx集成二-五-十计数器的应用 (2).docx集成二-五-十计数器的应用 (2).docx集成二-五-十计数器的应用 (2).docx集成二-五-十计数器的应用 (2).docx集成二-五-十计数器的应用 (2).docx...
集成二-五-十计数器的应用 (2).pdf集成二-五-十计数器的应用 (2).pdf集成二-五-十计数器的应用 (2).pdf集成二-五-十计数器的应用 (2).pdf集成二-五-十计数器的应用 (2).pdf集成二-五-十计数器的应用 (2).pdf集成二-...
JJF 1190-2008 尘埃粒子计数器校准规范pdf,JJF 1190-2008 尘埃粒子计数器校准规范
MCS-51定时/计数器PPT,不要分就可以下载。51定时器、计数器、串口。。。。
单片机课程设计----手动计数器
009、按键中断识别应用---0~255计数器.7z
中大单片机_第6章 MCS-51的定时器计数器.ppt
正泰JDM1-14预置式计数器pdf,正泰JDM1-14预置式计数器
MCS-51单片机含有2个定时器/计数器,具有4种工作方式。具有两种工作模式(计数器模式和定时器模式) MCS-51单片机含有1个全双工串行口,具有4种工作方式。 TMOD-》定时器/计数器方式控制寄存器 TCON-》...
S7-1200PLC高速计数器在脉冲频率低时正常,为什么频率高时显示为0,不再计数了?
实验二十一---集成计数器.doc
51-单片机流水线计数器设计全文共3页,当前为第1页。51-单片机流水线计数器设计全文共3页,当前为第1页。#include<reg51.h> 51-单片机流水线计数器设计全文共3页,当前为第1页。 51-单片机流水线计数器设计全文共3页...
正泰JDM1-9预置式计数器pdf,正泰JDM1-9预置式计数器
博文51单片机汇编语言实验(三)-----定时/计数器实验(附参考代码及注释)的附件。包含文章介绍的内容的完整的工程文件
单片机C语言实例--250-按键计数器.zip
Protues仿真实例-51单片机-计数器.rar
商业编程-源码-精英计数器.zip
单片机课程设计 题 目 00~99计数器的设计 1 课程设计的目的 (1) 利用单片机定时器/计数器中断设计秒表,从而实现秒、十分之一秒的计时。 (2) 综合运用所学的《单片机原理与应用》理论知识,通过实践加强对所学知识的...
SIEMENS-西门子S7-1200PLC高速计数器常见问题