目录

  • 1 Android说课
    • 1.1 课程简介
    • 1.2 课程的定位与目标
    • 1.3 课程的设计理念与思路
    • 1.4 课程内容的选取与教学组织的安排
    • 1.5 课程的教学模式与教学方法
    • 1.6 课程教学资料
    • 1.7 课程特色
  • 2 Android项目结构
    • 2.1 项目开发
  • 3 Button的用法
    • 3.1 Button的用法
    • 3.2 内部类方法处理按钮单击事件
  • 4 Android入门
    • 4.1 Android的发展史
    • 4.2 Android的系统构架
    • 4.3 搭建Android开发环境
    • 4.4 创建Android应用程序
  • 5 Activity初步
    • 5.1 Activity启动流程
    • 5.2 Activity与布局文件间的关系
    • 5.3 Activity当中获取代表控件对象
  • 6 AcitonBar与菜单
    • 6.1 ActionBar的作用
    • 6.2 各版本的菜单对比
  • 7 控件布局
    • 7.1 控制布局的概念
    • 7.2 相对布局管理器
  • 8 Activity详解
    • 8.1 Actibity初步
    • 8.2 认识Intent
  • 9 列表控件
    • 9.1 Android列表用途
    • 9.2 用ArrayAdapter显示数据
    • 9.3 列表项布局设计
    • 9.4 下拉视图Spinner
  • 10 对话框
    • 10.1 Toast提示框
    • 10.2 Dialog对话框
    • 10.3 特色对话框
    • 10.4 自定义对话框
    • 10.5 构建Notification
  • 11 Service
    • 11.1 关于service
    • 11.2 范例:定义后台服务
    • 11.3 剪贴板服务
  • 12 Android线程
    • 12.1 message,looper, handler类的关系
    • 12.2 范例:消息传递 —— 自动更新文本
  • 13 Pending Intent
    • 13.1 认识PendingIntent
    • 13.2 范例:发送通知 —— Notification
  • 14 广播机制:Broadcast
    • 14.1 范例:广播组件的定义结构
  • 15 存储数据
    • 15.1 SharedPreferences存储
    • 15.2 文件存储
    • 15.3 SQLite数据库存储
    • 15.4 ContentProvider存储
    • 15.5 网络存储
范例:消息传递 —— 自动更新文本

消息传递 —— 自动更新文本

定义Activity程序,通过Timer类完成定时更新 

消息通道:Looper

在使用Handler处理Message的时候,实际上都是需要依靠一个Looper通道完成的,当用户取得一个Handler对象的时候实际上都是通过Looper完成的,在一个Activity类之中,会自动的帮助用户启动好Looper对象,而如果是在一个用户自定义的类之中,则需要用户手工使用调用Looper类中的若干方法之后才可以正常的启动Looper对象

Android中Handler传递机制:首先,在一个应用程序启动的时候,DVM会创建一个Linux进程,并且创建一个UI线程,称之为主线程,并且为主线程初始化一个MessageQueue和一个Looper。而Handler创建时,是运行在创建的线程中的,当Handler创建在子线程中的时候,它就只能够来操作子线程中的MessageQueue,而调用Looper.prepare()方法可以在子线程中初始化一个Looper和消息队列,子线程初始化的时候没有MessageQueue和Looper对象。 

一个线程中只能由一个MessageQueue和Looper,但是可以有多个Handler,其中,Handler发送Message的时候调用sendMessage发送一个Message到消息队列中,调用方法为:sendMessage->sendMessageDelayed->sendMessageAtTime,然后就将Message发送到了消息队列中,然后Looper对象不断的从消息队列中取出非空的Message,然后调用dispatchMessage分配消息,并且通过handleCallBack将Message交给发送Message的Handler的handleMessage方法来处理消息。

而Android建议使用Message来传递消息的时候,最好通过Message.obtain()方法来获取消息实例,因为当消息池中有可用的Message对象的时候,就会返回该可用的Message对象,而没有的话,则会通过参数来创建一个Message对象,而调用removeMessages的时候,将Message从消息队列中删除,并且放入消息池中。

将发布/订阅的JMS消息传递部署到Websphere集成总线中