【Android 初学】11、关于Android当中的线程(初级)

Start Android



1、回顾Java当中的线程概念

1)线程的两种实现方式

2)线程的生命周期

3)多线程同步

(多个线程访问同一个资源,在同)



2、MainThread与Worker Thread

1)UI相关的代码就是MainThread

2)其他代码就是WorkerThread(不允许操作UI,ProgressBar可以)

3)在一个应用程序当中,主线程通常用于接收用户的输入,以及将运算的结果反馈给用户(也就是主线程不能阻塞)

对于一些可能会产生阻塞的操作,必须放在Worker Thread当中


3、Android当中的线程使用


4、什么是Handler


5、Handler、Looper和MessgeQueue的基本原理(可用于实现线程之间的通信)

这三者配合可完成消息队列

1)首先,生成一个类(继承Handler),并创建Handler类的对象的引用Myhandler(名字可自定义)

2)再将新的firstHandler对象赋值给Handler类的对象的引用Myhandler(向上转型);

3)Message smg = Myhandler.obtainMessage(); 利用Myhandler对象的obtainMessage方法创建一个消息对象

4)对msg对象进行操作,让msg附带消息;如:msg.what = 100;

5)调用Myhandler.sendMessage(msg);方法,将msg这个消息对象放到消息队列当中

6)Looper将会从消息队列当中将消息取出

7)Looper将会找到与消息对象对应的Handler对象(这里是Myhandler)

8)最后Looper将会调用Myhandler对象的handlerMessage(Message msg);方法,用于处理消息对象


6、通过Handler实现线程间通信

7、在主线程当中实现Handler的handlerMessage()方法


8、在Worker Thread当中通过Handler发送消息

  1)准备Looper对象

在线程的类的run方法中,调用Looper.prepare();

  2)在Worker Thread生成Handler对象

handler = new Handler(){public void handleMessage(Message msg){}}

  3)在MainThread当中发送消息


【Android 初学】11、关于Android当中的线程(初级),布布扣,bubuko.com

时间: 2024-10-15 22:12:52

【Android 初学】11、关于Android当中的线程(初级)的相关文章

Android技术11:Android的线程模型

1.Android的单线程模型 在android应用程序启动时,Android会同时启动一个对应的主线程Main Thread.主线程主要负责处理UI方面的事件,所以又称UI线程.Android应用程序必须遵守单线程模型原则:androidUI操作不是线程安全的,并且这些操作必须在UI线程中完成.UI线程负责事件监听和绘图处理,因此必须保证UI线程能够随便响应用户,所以那些非常耗时的,必须放到其他线程中处理,如网络连接,数据库读取等操作,否超过一定时间没有响应,则应用程序就会终止. 2.消息队列

《Android开发艺术探索》第11章 Android的线程和线程池

第11章 Android的线程和线程池 11.1 主线程和子线程 (1)在Java中默认情况下一个进程只有一个线程,也就是主线程,其他线程都是子线程,也叫工作线程.Android中的主线程主要处理和界面相关的事情,而子线程则往往用于执行耗时操作.线程的创建和销毁的开销较大,所以如果一个进程要频繁地创建和销毁线程的话,都会采用线程池的方式.(2)在Android中除了Thread,还有HandlerThread.AsyncTask以及IntentService等也都扮演着线程的角色,只是它们具有不

【ANDROID 初学】控件--IMAGEVIEW的使用方法

Start Android 1.图片视图(ImageView)的基本概念 2.<InameView/>与ImageView 3.神奇的ScaleType属性 当图片大小与ImageView大小不匹配的时候,可以通过该属性来调整图片与ImageView控件的位置关系. android:scaleType:  android:scaleType是控制图片如何resized/moved来匹对ImageView的size. ImageView.ScaleType / android:scaleType

【Android 初学】Activity初步

1.Activity启动流程 Android操作系统 -->  读取配置文件AndroidMainfest.xml(得知启用哪个Activity)-->  生成MainActivity对象(名字可自定义) --> 调取该Activity的onCreate()方法 --> 在该方法会读取布局文件,决定该Activity显示界面 2.Activity与布局文件的关系 所谓的布局文件就是指示Activity显示的内容 3.在Activity当中获取代表控件的对象 每一个控件在Activi

【Android 初学】10、Intent对象的使用

Start Android 1.Intent对象的基本概念 1)Intent是Android应用程序组件之一: 2)Intent对象在Android系统当中表示一种意图: 3)Intent当中最重要的内容是action与data: 2.Intent对象的基本使用方法 3.使用Intent在Activity之间传递数据的方法 1)在Activity之间可以通过Intent对象传递数据: 2)使用putExtra()系列方法向Intent对象当中存储数据 3)使用getXXXExtra()系列方法从

Android技术21:Android异步消息处理线程

Android异步消息处理线程,该线程一直处于无限循环之中,每次从Message Queue中读取消息,然后回调消息处理的方法,Handler的HandlerMessage中处理消息.如果消息队列为空,该线程就挂,等待消息队列中有消息进来,就唤醒线程. 1.Android异步线程内部结构 在线程内部有一个或者多个Handler对象,外部程序通过Handler对象向线程发送异步消息,消息经过Handler传递到Message Queue对象中,每个线程内部只包含一个一个消息队列对象,线程主执行函数

【Android 初学】3、控件布局初步

什么是控件布局 所谓的控件布局方法,就是指控制控件在Activity当中的位置.大小.颜色以及其他控件样式属性的方法. 控件的布局,在android中,有两种方法: 1.使用布局文件完成控件布局(相对简单) 2.在Java代码中完成控件布局(动态布局.更灵活.也相对复杂) 布局方法分类 1.Linear Layout(最容易掌握) 线性布局:可以纵向布局.也可以横向布局. 2.Ralative Layout(最常用使用.熟悉WEB开发的人就很熟悉) 3.ListView 4.Grid View

【Android 初学】2、View初步

1.View的基本概念 View就是所有控件类的父类.(文本.按钮.多选.布局.··· ···) 2.在Activity当中获取代表View的对象 使用findViewById(R.id.ppp) ;ppp表示控件的ID 例如TextView textView= (TextView)findViewById(R.id.textView); 该方法将返回一个View类型,必须使用向下转型为响应的控件. 3.设置View的属性 使用上一个textView的对象: 可以修改该控件的text属性,如:t

【Android】11.5 创建和管理Fragments

分类:C#.Android.VS2015: 创建日期:2016-02-22 一.简介 想要管理activity中的fragment,可以用FragmentManager类来实现.通过在activity中调用GetFragmentManager()可获得该类的实例. 使用FragmentManager可以做的事情有: l 使用FindFragmentById()(用于在activity布局中提供有界面的fragment)或者FindFragmentByTag()获取activity中存在的frag