主线程的职责是创建、显示和更新UI控件、处理UI事件、启动子线程、停止子线程;子线程的职责是进行处理和向主线程发出更新UI消息,而不是直接更新UI。

android 多线程编程报错:

05-14 15:29:50.908: E/AndroidRuntime(2098): android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.

不能在子线程直接更新ui

解决办法:

通过handler消息机制实现ui的刷新

(1)主线程:

handler = new Handler() {

@Override

public void handleMessage(Message msg) {

switch (msg.what) {

case 0:

LoadList(getApplicationContext());

}

}

};

(2)子线程:

new Thread() {

@Override

public void run() {

Message msg = new Message();

msg.what = 0;

handler.sendMessage(msg);

Log.d("listview", "loadlist");

}

}.start();

转载于:https://blog.51cto.com/chengang/1200140

android 多线程编程相关推荐

  1. android: 多线程编程基础

    9.1   服务是什么 服务(Service)是 Android 中实现程序后台运行的解决方案,它非常适合用于去执行那 些不需要和用户交互而且还要求长期运行的任务.服务的运行不依赖于任何用户界面,即使 ...

  2. 线程与进程、Android多线程编程

    线程与进程.Android多线程编程 目录 一.概念 1.程序 2.进程 3.并发 4.并行 5.线程 二.Android中的进程与线程 1.安卓的进程 2.安卓的线程 三.Android多线程编程 ...

  3. Android多线程编程(一)- 线程基础

    Android多线程编程(一) 到了学习下一部分了,多线程编程一直都是Android经常使用的部份,在进行网络请求或者访问数据库时,为了避免主线程被耗时操作阻塞了进度,通常都会开启子线程进行处理,多线 ...

  4. Android开发实例——倒计时器——Android多线程编程

    文章目录 一.倒计时器功能描述 二.实现步骤 1.新建Activity,命名为ThreadDemo 2.设计ThreadDemo 的布局文件 3.编写ThreadDemo.java 文件代码 3.1 ...

  5. Android多线程编程

    Android多线程编程 其实就是将耗时操作放在子线程里运行,防止主线程被阻塞,影响软件使用. 线程的基本用法 定义一个线程只需要新建一个类继承自Thread,然后重写父类的run()方法,并在里面编 ...

  6. android ——多线程编程

    1.定义一个线程只需要新建一个类继承自Thread.然后重写run()方法,并在里面编写耗时逻辑即可: class MyThread extends Thread{public void run(){ ...

  7. android开发多线程编程,Android多线程编程

    Handler AsyncTask HTTPURLConnection使用 get方式使用 private void initData() { new Thread(() -> { try { ...

  8. Android多线程编程(异步通信)---Handler和AsyncTask

    Handler机制: 1)主线程UI: 本身就有一个Looper机制,其中有Handler,中包含了消息队列MessageQueen: 2)UI线程模型: UI主线程不允许其他线程操作组件,只有UI主 ...

  9. Android 开发中的多线程编程技术

    此文章来自"Intel Software"应用开发 多线程这个令人生畏的"洪水猛兽",很多人谈起多线程都心存畏惧.在Android开发过程中,多线程真的很难吗? ...

最新文章

  1. 人工智能功能级别与框架|《远望译品》
  2. 服务器如何开启远程控制,远程控制命令设置方法介绍
  3. python代码需要背吗-python代码运行需要编译吗
  4. C++类与static关键字
  5. simulink设计PID控制器及其封装详解
  6. H5开发的web APP和原生APP的区别
  7. C++ 类型转换(强制类型转换)
  8. Java学习笔记_字符串/静态static
  9. Android 查看每个应用的最大可用内存
  10. !DOCTYPE 标签是什么
  11. ntko跨浏览器插件_继泄露版后,微软全新 Chrome 内核 Edge 浏览器你都测试过了吗?...
  12. c语言爱心代码空心,c语言心形图案代码,是什么?
  13. c++ 使用未初始化的内存_C语言内存分布(内核区、堆栈区等)
  14. 重磅揭晓阿里 AliOS Things 3.0 革命性创新!
  15. GIS理论(墨卡托投影、地理坐标系、地面分辨率、地图比例尺、Bing Maps Tile System)转载...
  16. c++ vector、stack、queue、map用法总结
  17. 配置邮件服务器sendman,java邮件收发功能实现代码.pdf
  18. iso22000食品安全管理体系_ISO22000-食品安全管理体系认证
  19. 空间搜索(圆范围)中Geohash编码方案和格网编码方案对比探讨
  20. python数据库连接mysql_使用Python连接MySQL数据库

热门文章

  1. MySQL的IFNULL解决判空问题
  2. case / switch语句的Python等价物是什么? [重复]
  3. 如何使用给定的部分名称杀死所有进程?
  4. win11系统怎么样 Windows11系统好用吗
  5. 没有tpm不能装win11的解决方法
  6. mybatis多对一,一对一,多对多resultMap映射,pojo映射,传参集合,封装的对象传参
  7. python在工作中怎么用_简洁优雅的Python教你如何在工作中“偷懒”
  8. linux锁定系统时间设置,Linux时间设置系统时间、硬件时间和时间服务
  9. python爬图片_Python爬虫:彼岸图网图片爬取-Go语言中文社区
  10. 计算机 学术论文写作,计算机辅助学术论文写作系统的研制策略与方法.pdf