android 多线程编程
主线程的职责是创建、显示和更新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 多线程编程相关推荐
- android: 多线程编程基础
9.1 服务是什么 服务(Service)是 Android 中实现程序后台运行的解决方案,它非常适合用于去执行那 些不需要和用户交互而且还要求长期运行的任务.服务的运行不依赖于任何用户界面,即使 ...
- 线程与进程、Android多线程编程
线程与进程.Android多线程编程 目录 一.概念 1.程序 2.进程 3.并发 4.并行 5.线程 二.Android中的进程与线程 1.安卓的进程 2.安卓的线程 三.Android多线程编程 ...
- Android多线程编程(一)- 线程基础
Android多线程编程(一) 到了学习下一部分了,多线程编程一直都是Android经常使用的部份,在进行网络请求或者访问数据库时,为了避免主线程被耗时操作阻塞了进度,通常都会开启子线程进行处理,多线 ...
- Android开发实例——倒计时器——Android多线程编程
文章目录 一.倒计时器功能描述 二.实现步骤 1.新建Activity,命名为ThreadDemo 2.设计ThreadDemo 的布局文件 3.编写ThreadDemo.java 文件代码 3.1 ...
- Android多线程编程
Android多线程编程 其实就是将耗时操作放在子线程里运行,防止主线程被阻塞,影响软件使用. 线程的基本用法 定义一个线程只需要新建一个类继承自Thread,然后重写父类的run()方法,并在里面编 ...
- android ——多线程编程
1.定义一个线程只需要新建一个类继承自Thread.然后重写run()方法,并在里面编写耗时逻辑即可: class MyThread extends Thread{public void run(){ ...
- android开发多线程编程,Android多线程编程
Handler AsyncTask HTTPURLConnection使用 get方式使用 private void initData() { new Thread(() -> { try { ...
- Android多线程编程(异步通信)---Handler和AsyncTask
Handler机制: 1)主线程UI: 本身就有一个Looper机制,其中有Handler,中包含了消息队列MessageQueen: 2)UI线程模型: UI主线程不允许其他线程操作组件,只有UI主 ...
- Android 开发中的多线程编程技术
此文章来自"Intel Software"应用开发 多线程这个令人生畏的"洪水猛兽",很多人谈起多线程都心存畏惧.在Android开发过程中,多线程真的很难吗? ...
最新文章
- 人工智能功能级别与框架|《远望译品》
- 服务器如何开启远程控制,远程控制命令设置方法介绍
- python代码需要背吗-python代码运行需要编译吗
- C++类与static关键字
- simulink设计PID控制器及其封装详解
- H5开发的web APP和原生APP的区别
- C++ 类型转换(强制类型转换)
- Java学习笔记_字符串/静态static
- Android 查看每个应用的最大可用内存
- !DOCTYPE 标签是什么
- ntko跨浏览器插件_继泄露版后,微软全新 Chrome 内核 Edge 浏览器你都测试过了吗?...
- c语言爱心代码空心,c语言心形图案代码,是什么?
- c++ 使用未初始化的内存_C语言内存分布(内核区、堆栈区等)
- 重磅揭晓阿里 AliOS Things 3.0 革命性创新!
- GIS理论(墨卡托投影、地理坐标系、地面分辨率、地图比例尺、Bing Maps Tile System)转载...
- c++ vector、stack、queue、map用法总结
- 配置邮件服务器sendman,java邮件收发功能实现代码.pdf
- iso22000食品安全管理体系_ISO22000-食品安全管理体系认证
- 空间搜索(圆范围)中Geohash编码方案和格网编码方案对比探讨
- python数据库连接mysql_使用Python连接MySQL数据库
热门文章
- MySQL的IFNULL解决判空问题
- case / switch语句的Python等价物是什么? [重复]
- 如何使用给定的部分名称杀死所有进程?
- win11系统怎么样 Windows11系统好用吗
- 没有tpm不能装win11的解决方法
- mybatis多对一,一对一,多对多resultMap映射,pojo映射,传参集合,封装的对象传参
- python在工作中怎么用_简洁优雅的Python教你如何在工作中“偷懒”
- linux锁定系统时间设置,Linux时间设置系统时间、硬件时间和时间服务
- python爬图片_Python爬虫:彼岸图网图片爬取-Go语言中文社区
- 计算机 学术论文写作,计算机辅助学术论文写作系统的研制策略与方法.pdf