简介

前一章我们以一个简单的小动画来解释了Handler。

这章我们会介绍在子线程里写Handler。如果是Handler写在了子线程中的话,我们就需要自己创建一个Looper对象了:创建的流程如下:

  1. 直接调用Looper.prepare()方法即可为当前线程创建Looper对象,而它的构造器会创建配套的MessageQueue;
  2. 创建Handler对象,重写handleMessage( )方法就可以处理来自于其他线程的信息了!
  3. 调用Looper.loop()方法启动Looper

本章示例

使用示例: 输入一个数,计算后通过Toast输出在这个范围内的所有质数,如下截图。

前端代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><EditTextandroid:id="@+id/inputNum"android:inputType="number"

Android入门第37天-在子线程中调用Handler相关推荐

  1. Android进阶:六、在子线程中直接使用 Toast 及其原理

    最近因为个人原因,很久没有更文章,感谢关注的小伙伴,望谅解! 一般我们都把Toast当做一个UI控件在主线程显示.但是有时候非想在子线程中显示Toast,就会使用Handler切换到主线程显示. 但是 ...

  2. MFC子线程中调用updatedata()函数报错解决方法

    在XXXDlg.h顶部添加 #define WM_UPDATEDATA WM_USER+100 关联自定义消息,在XXXDlg.cpp中消息处理函数中添加 ON_MESSAGE(WM_UPDATEDA ...

  3. Android利用Looper在子线程中改变UI

    MainActivity如下: package cn.testlooper; import android.app.Activity; import android.os.Bundle; import ...

  4. android 不能在子线程中更新ui的讨论和分析

    问题描述 做过android开发基本都遇见过 ViewRootImpl$CalledFromWrongThreadException,上网一查,得到结果基本都是只能在主线程中更改 ui,子线程要修改 ...

  5. 在子线程中创建新的窗体,遇到的问题。

    场景: 服务端的应用程序创建了一个线程来接收客户端发来的消息,当接收到消息后,需要弹出一个新的窗体,作为响应操作等. 现象: 新创建的窗体呈现挂起.假死,或者一闪而过的现象. 原因: 新创建的响应窗体 ...

  6. 【Android 异步操作】Android 线程切换 ( 判定当前线程是否是主线程 | 子线程中执行主线程方法 | 主线程中执行子线程方法 )

    文章目录 一.判定当前线程是否是主线程 二.子线程中执行主线程方法 三.主线程中执行子线程方法 一.判定当前线程是否是主线程 在 Android 中 , 如果要判定当前线程是否是主线程 , 可以使用如 ...

  7. Android子线程中更新UI的4种方法

    方法一:用Handler 1.主线程中定义Handler: Handler mHandler = new Handler() { @Override public void handleMessage ...

  8. 适用于android 4.0以上版本的子线程网络图片查看器

    android 4.0版本的新特性之一:加载网络内容时会自动判断是否在主线程中运行. 并且获取到内容时不能直接在子线程中设置主线程中的View,会报出以下异常 异常: CalledFromWrongT ...

  9. Android入门第七篇之ListView (二)

    Android入门第六篇之ListView (一) ,讲的是如何制作一个具有两行文本的 自定义控件 ,作为ListView的Item的使用方法.这篇接下来也是围绕ListView和Item,更加深入地 ...

最新文章

  1. iptables从入门到精通
  2. springmvc静态资源;mvc:default-servlet-handler后Controller失效
  3. Lintcode 408 解题思路及c++代码
  4. Web前端开发笔记——第一章 Web前端概论
  5. nRF51822 SDK初体验
  6. Linux内核:容器底层cgroup如何使用
  7. 单片机机器周期怎么计算公式_单片机的机器周期计算
  8. 版本为2.5的OpenMP的所有API函数
  9. 关于使用IDEA导入项目后依赖报错的解决方案
  10. 嵌入式linux clion,跨平台IDE集成开发环境Clion教程:嵌入式开发
  11. jsoup Java HTML解析器
  12. nginx强制下载txt等文件
  13. koreader下载_kindle koreader
  14. 铂电阻测温电路c语言程序,pt100测温电路(经典测温范围)
  15. 华为手机怎么刷android系统,怎样刷入安卓原生系统 在手机系统更新这件事上,小米华为和OPPOvivo谁更有良心...
  16. 【1】数据可视化:基于 Echarts + Python 实现的动态实时大屏 - 互联网企业数据
  17. IIS配置php+soap
  18. 聚类之层次聚类、基于划分的聚类(…
  19. 数据库中的多表联查(四表联查)
  20. Java开发培训班该怎样选择?

热门文章

  1. 乒乓球实战战术和技巧
  2. Linux-统计文件或文件夹的大小
  3. c语言数组项目按身高排序,过三关 Java冒泡排序选择排序插入排序小练习
  4. 三次固支样条matlab,matlab连续梁程序的编制与使用
  5. 编辑中的word变成只读_如何解决Word保存几次就变成只读另存为的问题
  6. LeetCode:121.买卖股票的最佳时机——动态规划
  7. iphone录制脚本_应用程序是否真的在录制您的iPhone屏幕?
  8. 算法技巧——双指针算法
  9. 让你的网页引入思源字体
  10. Failed to connect to github.com port 443 after 21060 ms Timed out