Android中只有2种类型的线程:MainThread(主线程) 和 WorkerThread。

MainThread 又叫 UI线程,Android应用程序中所有UI相关的代码都是运行在主线程中的,除了MainThread之外的其它所有线程都叫 WorkerThread。

在主线程MainThread中可以启动其它线程(WorkerThread)做一些事情。

MainThread 和 WorkerThread 的关系:

a. Android所有UI相关的代码都是运行在主线程(MainThread)中的;

b. WorkerThread 从原则上来讲是不允许操作UI的(即操作主线程中的UI对象);

c. 但是有部分特殊的UI组件可以在WorkerThread中进行操作,比如:ProgressBar。

public class MainActivity extends Activity

{

private TextView textView;

private Button button;

private ProgressBar progressBar;

@Override

public void onCreate(...)

{

textView = (TextView)findViewById(R.id.textView1);

button = (Button)findViewById(R.id.button1);

progressBar = (ProgressBar)findViewById(R.id.progressBar1);

button.setOnClickListener(new OnClickListener() {

public void onClick(...) {

Thread thread = new MyThread();

thread.start();

}

});

}

/**

* 内部WorkerThread类:MyThread

*/

class MyThread extends Thread {

@Override

public void run() {

// 这里试图在WorkerThread中操作UI,但是这是不允许的

textView.setText("看我改变了,但是这是不可能的。");

// 但是 ProgressBar 是可以的

for(int i = 1; i <= 100; i++) {

try {

Thread.sleep(100);

} catch(Exception e) {

}

// 这里的进度条可以正常工作

progressBar.setProgress(progressBar.getProgress() + 1);

}

}

}

}

android js 子线程,Android学习笔记:Android中的线程:MainThread 和 WorkerThread相关推荐

  1. android studio 远程调试,Unity3D学习笔记——Android远程真机调试(Unity Remote)

    前言:当使用Unity开发移动端的游戏,特别是使用到手机的传感器,如重力感应等,调试的时候,很麻烦, 因为每次都需要编译成APK后安装到手机中测试,而Unity Remote便能很好的解决这个问题,U ...

  2. Android Jetpack Components of LiveData 学习笔记

    Android Jetpack Components of Lifecycle 学习笔记 Android Jetpack Components of LiveData 学习笔记 Android Jet ...

  3. Android Jetpack Components of ViewModel 学习笔记

    Android Jetpack Components of Lifecycle 学习笔记 Android Jetpack Components of LiveData 学习笔记 Android Jet ...

  4. Android开源项目SlidingMenu本学习笔记(两)

    我们已经出台SlidingMenu使用:Android开源项目SlidingMenu本学习笔记(一个),接下来再深入学习下.依据滑出项的Menu切换到相应的页面 文件夹结构: 点击Bluetooth能 ...

  5. Windows进程与线程学习笔记(八)—— 线程切换与TSS/FS

    Windows进程与线程学习笔记(八)-- 线程切换与TSS/FS 要点回顾 线程切换与TSS 内核堆栈 调用API进0环 实验:分析SwapContext 线程切换与FS 段描述符结构 分析Swap ...

  6. C# 学习笔记(9)线程

    C# 学习笔记(9)线程 本文参考博客 C#多线程 https://www.cnblogs.com/dotnet261010/p/6159984.html C# 线程与进程 https://www.c ...

  7. Windows事件等待学习笔记(二)—— 线程等待与唤醒

    Windows事件等待学习笔记(二)-- 线程等待与唤醒 要点回顾 等待与唤醒机制 可等待对象 可等待对象的差异 线程与等待对象 一个线程等待一个对象 实验 第一步:编译并运行以下代码 第二步:在Wi ...

  8. Windows进程与线程学习笔记(九)—— 线程优先级/进程挂靠/跨进程读写

    Windows进程与线程学习笔记(九)-- 线程优先级/进程挂靠/跨进程读写 要点回顾 线程优先级 调度链表 分析 KiFindReadyThread 分析 KiSwapThread 总结 进程挂靠 ...

  9. Windows进程与线程学习笔记(六)—— 线程切换

    Windows进程与线程学习笔记(六)-- 线程切换 主动切换 分析KiSwapContext 分析SwapContext 分析KiSWapThread 总结 时钟中断切换 系统时钟 分析INT 0x ...

  10. r语言c函数怎么用,R语言学习笔记——C#中如何使用R语言setwd()函数

    在R语言编译器中,设置当前工作文件夹可以用setwd()函数. > setwd("e://桌面//") > setwd("e:\桌面\") > ...

最新文章

  1. SQL UNION 操作符
  2. 文件IO-Properties
  3. C语言merge sort归并排序算法(附完整源码)
  4. mysql性能结构优化原理_MySQL性能管理及架构设计(二):数据库结构优化、高可用架构设计、数据库索引优化...
  5. java学习(116):arraylist集合实现类
  6. 求字符串全排列的递归算法
  7. keil C对lib封装库反汇编成C语言,Keil软件“C语言”及“汇编”混编 —— 相关知识整理.doc...
  8. android资源透明背景,@谷歌android帝 这是你想要的,全局透明背景教程,两种方法...
  9. 奇安信荣获中国电子2021年度科技进步奖一、二等奖
  10. IDL size函数
  11. 【python】将json字符串转化为json对象
  12. Redis Web版客户端工具——TreeNMS
  13. c语言程序装萝卜,c语言编程题库(大一c语言编程题库)
  14. 全面升级,淘宝/天猫api接口大全
  15. 年度双十佳广告爆笑金庸版
  16. NeurIPS 2021 | 医学图像GAN生成,在Noisy Data上训练出超越监督学习的模型
  17. 好心情平台:30分钟就可改善抑郁情绪的运动处方
  18. Java学完了仍不会写项目
  19. 固件:BIOS和UEFI
  20. Hub能新建但不能打开项目 Failed to connect to pipe_20220313

热门文章

  1. 结合XML的数据检索技术
  2. 如何去除list中的重复元素
  3. Jenkis maven构建项目实践
  4. 用友与中国互联网协会签署战略合作 共推企业互联网转型
  5. Linux中KVM虚拟机是什么
  6. Drupal 7.17 发布,专业的 CMS 内容管理系统
  7. stardict安装及其他
  8. ROS防火墙规则收集
  9. ati hd4570 linux amd 64 安装命令,ATI 显卡的驱动在Linux下的安装方法
  10. Android 多媒体开发学习之撕衣服