`

睡不着觉--安卓计数器给我数绵羊

 
阅读更多

         最近长沙天气有点让人抓狂了,宿舍更是睡觉禁地,大晚上睡不着觉,半夜惊醒,一身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();
	}
}

 以上纯属小弟愚见,有问题虚心接受。

分享到:
评论

相关推荐

    MCS-51定时/计数器PPT

    MCS-51 定时/计数器 PPT MCS-51 定时/计数器是单片机系统中的一个重要组件,它可以实现定时、计数和串行口通信等功能。下面是 MCS-51 定时/计数器的详细知识点: 一、MCS-51 定时/计数器的结构与工作原理 MCS-51 ...

    MCS-51单片机定时器和计数器的4种工作方式解析

    MCS-51单片机含有2个定时器/计数器,具有4种工作方式。具有两种工作模式(计数器模式和定时器模式)  MCS-51单片机含有1个全双工串行口,具有4种工作方式。  TMOD-》定时器/计数器方式控制寄存器  TCON-》...

    中大单片机_第6章 MCS-51的定时器计数器.ppt

    中大单片机_第6章 MCS-51的定时器计数器.ppt

    S7-1200PLC高速计数器在脉冲频率低时正常,为什么频率高时显示为0,不再计数了?.docx

    总的来说,S7-1200PLC高速计数器在高频率下计数失效主要是由于默认滤波时间过长,不能适应快速脉冲。通过合理调整滤波时间,可以优化高速计数器的性能,使其在各种频率下都能稳定工作。在进行PLC程序设计和调试时,...

    实验二十一---集成计数器.doc

    实验二十一---集成计数器.doc

    正泰JDM1-14预置式计数器.pdf

    由于提供的文件内容不完整,并且包含了一串看似由OCR扫描错误产生的字符,因此很难从这样的信息中提取出准确的、相关的知识点。不过,考虑到文件标题中提到的是“正泰JDM1-14预置式计数器”,我们可以推测这可能与...

    正泰JDM1-9预置式计数器.pdf

    从给定的文件内容来看,提供的信息十分有限,文件名为“正泰JDM1-9预置式计数器.pdf”,描述中重复了文件名,并且强调了文件内容所涉及的产品。标签“综合资料”可能表明文件包含了这款预置式计数器的基本信息、使用...

    18-30加减计数器multisim源文件

    计数器在数字电子系统中扮演着至关重要的角色,它能够记录、显示或控制一系列事件的顺序。在本篇中,我们将深入探讨一个特定的计数器设计——18-30加减计数器,该计数器利用了74LS192芯片,并通过Multisim进行仿真...

    009、按键中断识别应用---0~255计数器.7z

    在这个特定的项目“009、按键中断识别应用---0~255计数器”中,我们将会探讨如何利用微控制器(MCU)的中断功能来实现一个从0到255计数的计数器,每次按键按下都会增加计数值。 首先,我们需要了解中断的基本概念。...

    单片机课程设计--00-99计数器的设计.doc

    在系统调试与结果部分,未给出具体的信息,但可以推测,通过硬件搭建和软件编程的结合,计数器应能正常工作,能够正确计数并在数码管上显示,同时具有手动计数、复位等功能。 这个课程设计项目不仅锻炼了学生的硬件...

    SIEMENS-西门子S7-1200PLC高速计数器常见问题.txt

    SIEMENS-西门子S7-1200PLC高速计数器常见问题

    MCS-51定时器/计数器在出租车计价器中的应用.rar

    在出租车计价器的设计中,MCS-51的定时器/计数器功能起着至关重要的作用。本文将深入探讨MCS-51定时器/计数器的工作原理及其在出租车计价器中的具体应用。 一、MCS-51定时器/计数器概述 MCS-51单片机内置了两个16...

    电子技术基础课程设计---47进制计数器

    当电路实现四进制计数器功能时:数码管显示数字0、1、3,当数到4(即0100)的时候采用置0000法使电路从0开始重新计数。 b.当电路实现七进制计数器功能时:显示数字0到6,当数到7(即0111)的时候采用置0000法使电路...

    硬件实验---定时计数器

    在电子工程和计算机科学领域,定时计数器是至关重要的组成部分,尤其在单片机系统中,它们扮演着时间管理和事件计数的角色。本实验基于C语言编程,旨在让学生掌握如何利用单片机实现定时计数器的功能。下面将详细...

    PLC实验二--定时器、计数器实验.doc

    PLC实验二--定时器、计数器实验.doc

    计数器及其应用实验报告

    计数器是数字系统中的重要组成部分,主要用于统计输入脉冲的数量。本次实验“计数器及其应用”旨在让学生掌握中规模集成计数器的逻辑功能和使用方式,并了解其扩展和应用。实验中使用的器材包括数字电子实验箱,以及...

    20210804114-潘文飞-计数器.ewb

    20210804114-潘文飞-计数器.ewb

    如何重置 S7-200 的高速计数器

    其中,高速计数器作为S7-200的重要组成部分,在实现精确的速度检测与位置控制方面发挥着关键作用。然而,在某些应用场景下,可能需要对高速计数器进行重置操作。本文将详细介绍如何重置S7-200系列PLC中的高速计数器...

    s7-200高速脉冲计数器及PTO和PWM

    值得注意的是,某些输入端口同时用于高速计数器和边缘中断功能,这意味着同一输入不能同时用于这两种功能。然而,如果某个高速计数器模式不使用特定输入,则该输入可以用于其他目的。 #### HSC模式与输入点 每种...

Global site tag (gtag.js) - Google Analytics