Android消息机制入门一
为什么要引入消息机制?
为什么要引入消息机制,首先举一个简单的例子,我们来说明:
package cn.edu.heut.zcl;
import java.util.Timer;
import java.util.TimerTask;
import android.app.Activity;
import android.os.Bundle;
public class Activity1 extends Activity {
private int t = 0;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Timer timer = new Timer();
timer.scheduleAtFixedRate(new MyTask(), 1, 5000);
}
private class MyTask extends TimerTask{
@Override
public void run() {
Activity1.this.updateTitle();
}
}
public void updateTitle(){
setTitle("title:" + t);
t ++;
}
}
我相信,看完代码之后,稍微有编程经验的朋友都会明白,这段代码是每隔一段时间该改变应用程序的标题的。但是你可以运行一下试试,他是绝对不会有任何反应的,这是为什么呢?
主线程与子线程
原来,在Android应用程序启动的时候,就会启动一个主线程(即UI线程)。但有时需要进行一些耗时运算,如果这些运算都放在主线程中,那么我们知道主线程就会阻塞,这样将会造成不好的用户响应。
这时一般采取的策略就是开辟一个新的线程,但是如果在新的线程里面写了处理主线程的代码,那么就会出现上面的例子的情况,什么都不会发生,甚至报错。
其实原因很简单,在设计Android时处于安全考虑,子线程是无法修改主线程的显示的代码的。这是问题接踵而来,怎么在子线程中修改主线程的显示呢?这是应该使用Android提供的消息机制。在这里我先给出一个简单的例子,该例子是我看到一位牛人写的之后进行修改,更适合本文,代码如下:
package cn.edu.heut.zcl;
import java.util.Timer;
import java.util.TimerTask;
import android.app.Activity;
import android.os.Bundle;
import android.os.Message;
import android.os.Handler;
public class Activity1 extends Activity {
private int t = 0;
private Handler mHandler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch(msg.what){
case 1:
updateTitle();
break;
}
}
};
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Timer timer = new Timer();
timer.scheduleAtFixedRate(new MyTask(), 1, 5000);
}
private class MyTask extends TimerTask{
@Override
public void run() {
// Activity1.this.updateTitle();
Message message = new Message();
message.what = 1;
mHandler.sendMessage(message);
}
}
public void updateTitle(){
setTitle("title:" + t);
t ++;
}
}
该例子是对上一个例子的修改,在主线程中声明了Handler对象,该对象用来接收并且处理收到的handlerMessage消息。在子线程中声明一个Message对象,并且为这个Message对象附上信息。通过Handler来发送消息。当主线程的接收消息收到信息后,进行处理,这就相当于在主线程中处理了。也就完成了子线程对主线程的改变。
分享到:
相关推荐
"Android开发从入门到精通光盘源代码"是一个很好的学习资源,提供了随书配套的详细代码示例,帮助开发者深入理解Android应用开发的各个环节。这里我们将围绕这个主题,深入探讨Android开发中的关键知识点。 首先,...
《Android开发从入门到精通》是一本专门为Android编程新手量身打造的教程。这本书全面覆盖了Android开发的基础知识,旨在帮助读者快速掌握Android应用开发的核心技能。以下是对书中的主要知识点进行的详细解读: 1....
通过这个完整的Android入门Demo,开发者不仅可以学习到基础控件的使用,还能理解服务和广播的机制,掌握Android应用开发的核心概念。实践中不断练习,将有助于提升Android编程技能,为成为专业开发者奠定坚实基础。
Android开发从入门到精通是扶松柏编著的一本关于Android应用程序开发的书籍。该书面向初学者,旨在通过简洁明了的语言和生动的实例,详细介绍Android应用开发中所需掌握的各种技术。书中可能覆盖的内容包括但不限于...
《Android从入门到精通源代码 孙更新》是一份针对初学者和进阶开发者精心编写的资源包,旨在帮助读者全面掌握Android应用开发的核心技术。这份资料由知名Android讲师孙更新提供,通过深入浅出的讲解和实际源代码示例...
1. **Android Studio简介**:作为Android开发的主要集成开发环境(IDE),Android Studio提供了丰富的工具和功能,如项目模板、调试器、代码补全等,使得开发过程更加高效。初学者需要熟悉其界面布局和基本操作,如...
《Android开发入门与实战 第二版》是一本专为初学者设计的Android编程书籍,旨在帮助读者快速掌握Android应用开发的基础知识和实践技巧。书中涵盖了从安装开发环境到创建完整应用的全过程,提供了丰富的实例和源码,...
1. **Android基础**:第9章可能涵盖了Android的基本概念,包括Android系统架构、Activity生命周期、Intent机制等,这些都是Android开发的基础。 2. **UI设计**:Android应用的用户界面设计是开发者必须掌握的部分,...
本资料是"Android APP开发入门:使用Android Studio环境 配套范例程序1-6章",涵盖了初学者需要了解的基本概念和实践操作,但由于文件大小限制,只包含了前六章的实例代码。 **第一章:环境搭建与Hello World** 在...
本教程旨在为初学者提供一个全面的Android入门指导,帮助他们理解并掌握Android应用开发的基础知识。 一、应用程序基础 在Android中,应用程序是由多个组件构成的,这些组件包括Activity、Service、...
通过《Android开发从入门到精通源码》的学习,开发者不仅能够掌握基本的Android应用开发,还能深入源码层面,理解Android系统的运作机制,从而实现更高效、更专业的应用开发。提供的源代码文件(android开发从入门到...
在Android APP开发领域,入门是每位开发者必经的阶段。Android Studio作为官方推荐的集成开发环境(IDE),为开发者提供了高效、便捷的开发工具。本书“Android APP开发入门”正是以此为切入点,引导读者深入了解...
标题“Android开发入门经典”表明本文档是一本针对初学者的Android开发入门指南。描述部分提到的“第一部分 Android的入门基础”是指学习Android开发的起始阶段,需要了解Android平台的基本概念,包括它是什么,拥有...
1. **Android系统架构**:Android是一个开源的操作系统,由Linux内核、运行库层、应用程序框架和应用程序四大部分构成。了解这些组成部分及其相互关系对于深入理解Android开发至关重要。 2. **环境搭建**:包括安装...
"Android 移动开发入门与进阶 源代码"是一个宝贵的资源,它涵盖了从基础到高级的Android应用开发知识。由张立国编著的这本书,通过源代码的形式,帮助读者深入理解Android应用的构建过程。 本书分为多个章节,从"ch...
通过"Android渗透测试入门教程试读.pdf",读者可以预期学习到上述各方面的基础知识,了解渗透测试的流程和工具,以及如何运用这些知识来提升Android应用的安全性。"大学霸淘宝店.url"可能是一个提供更深入学习资源的...
《Android4游戏入门经典 原书第二版》是一本专为初学者设计的Android游戏开发指南,旨在帮助读者从零基础逐步掌握Android游戏编程。这本书的英文原版提供了与众不同的教学体验,让读者能够接触并理解国际化的编程...
【Android 应用开发入门教程】是一份详细指导初学者入门Android应用开发的经典教程,涵盖了Android系统的结构、SDK的使用,以及应用程序的开发流程。在系统介绍中,讲解了Android作为一个开源移动操作系统的概述,...
《Android快速入门》这本书是为想要踏入Android开发领域的初学者准备的一份详尽指南。它旨在帮助读者快速掌握Android应用开发的基本概念和技术,让你能够构建自己的Android应用程序。在这个数字化时代,Android作为...