`
hold_on
  • 浏览: 456237 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

关于Android中非UI线程中操作UI线程中的控件的疑问

阅读更多

1、我们都知道,在Android的开发中,非UI线程不能操作UI线程中的控件,即UI是非线程安全的;

 

 

2、但是在工作线程(非UI线程)中调用ProgressBar控件的setProgress(int count)方法时,程序运行并

    不会出现异常,

 

 

3、但是如调用setBackGround(int color)或者setVisibility(int v)时,程序运行后出现异常

 

 

4、第一和第三点说的通,但是第二点不能理解

 

 

问题:谁能给“在工作线程中操作主线程UI”下个定义,比如上面的setProgress是操作UI吗?一般性判定原则是什么?

分享到:
评论
1 楼 balanche1 2013-04-28  
其实第1,3点讲得非常正确。而对于第2点,并不是必然的。第2点中有时候会报错,有时候不报错,这就要看你当时的运行环境是怎么样的。严格来说,第2点是错误的。

有时候不报错,是因为在另外的线程改变UI线程控件的时候,操作得比较快,不影响UI线程继续进行。
但是如果你在另外的线程中,加上sleep延时一下,操作变得缓慢,就会影响UI线程进行,报错。

相关推荐

    C#跨线程调用控件的四种方式

    在C#编程中,由于GUI(图形用户界面)控件是由主线程管理的,因此在其他线程中直接操作这些控件会引发"Cross-thread operation not valid"的异常。为了解决这个问题,开发者需要使用特定的方法来跨线程安全地调用...

    android 源码

    在Android开发中,UI线程,也称为主线程,负责处理与用户交互相关的所有操作,如绘制界面、处理触摸事件等。由于Android系统的单线程模型,直接在其他线程中修改UI元素可能会导致“CalledFromWrongThreadException”...

    android中非空验证框架validation

    `Android中非空验证框架Validation`就是针对这一需求而设计的工具,它可以帮助开发者高效地进行数据验证,避免因为输入错误导致的程序崩溃或者逻辑错误。本篇文章将深入探讨这个框架,以及如何通过提供的简单DEMO来...

    线程同步及数据结构

    在计算机科学领域,尤其是软件开发中,线程同步和数据结构是两个至关重要的概念。线程同步是指在多线程环境中,控制多个线程对共享资源的访问,以避免数据竞争和其他并发问题,确保程序的正确性和一致性。而数据结构...

    android-24 sdk resource codes

    Android 7(API级别24)是Google推出的Android操作系统的一个重要版本,它带来了许多新特性和改进。在这个版本的SDK中,开发者可以找到丰富的资源代码,这些代码不仅有助于理解Android系统的底层运作,而且为创建高...

    Android中文API

    6. **Resources**: 资源管理器提供了访问应用中非代码资源的方法,如字符串、图像、颜色值等,这些资源可以在不同设备和语言环境中进行动态配置。 7. **Content Provider**: 内容提供者是Android中数据共享的标准...

    流量曲线控件示例[SystemGraph.rar]-精品源代码

    这个控件能够帮助开发者在应用程序中直观地展示流量数据的变化情况,例如网络流量、系统负载或者任何需要以时间序列图形表示的数据。以下是对该项目中关键知识点的详细解析: 1. **自定义控件(SystemGraph.ctl)**: ...

    Android-安卓仿iPhone控制中心上划出现控制中心工具栏

    在Android中,我们可以重写`View`或`Activity`中的`onTouchEvent`方法来监听用户的触摸操作。当检测到上滑手势时,可以显示控制中心工具栏。这通常涉及到对`MotionEvent`对象的分析,包括ACTION_DOWN、ACTION_MOVE和...

    delphi控件大全

    Delphi 控件大全是 Delphi 编程语言中的一种控件大全,提供了多种控件的使用方法和属性介绍。下面是 Delphi 控件大全中的一些重要知识点: 1. TMainMenu 控件 TMainMenu 控件是一个标准的菜单控件,用于提供菜单...

    中非商贸资讯爬虫任务管理平台操作手册.docx

    《中非商贸资讯爬虫任务管理平台操作手册》旨在提供一套详尽的指南,帮助用户理解和操作这个专门针对中非商贸信息的爬虫任务管理工具。该平台的主要目标是优化平台架构,提升容错能力,提高运维效率,并方便地管理...

    HYZ数据库文件读写控件

    总之,HYZ数据库文件读写控件是解决软件中非结构化数据管理的有效工具,它简化了文件与数据库之间的交互,提升了开发效率,同时也保障了数据的安全性。无论是小型项目还是大型系统的开发,都能从中受益。通过学习和...

    2018年Vue2.x 5小时入门视频教程-包括Vuex、MintUi、ElementUi基础教程-02.zip

    State Mutation 实现多个页面共享计数.zip"中,你将学习到如何创建和使用`state`来存储数据,通过`mutation`改变状态,以及使用`getter`和`action`来响应式地获取和异步操作数据。同时,文件还会介绍如何实现不同...

    Google Android SDK开发范例大全 源码1.rar

    8. **Resources**: Android应用中非代码的资源,如字符串、图片、颜色、样式等,可以通过资源ID在代码中引用。 9. **Adapters**: 在ListView、GridView等可滚动视图中使用,将数据绑定到视图上,使数据和UI元素关联...

    论文研究 - 中非共和国班吉的秘密堕胎

    简介:秘密堕胎仍然是包括中非共和国在内的发展中国家的主要健康问题。 在中非共和国班吉的主要妇产医院,2000年进行的一项研究表明,秘密堕胎(CAs)占该服务记录的所有堕胎的43.4%。 我们研究的目的是评估过去4年...

    Android 信息过滤功能源码.zip

    本文将深入探讨一个名为“SmsFilter”的Android应用程序,该程序专注于过滤掉手机中非用户发送的信息,同时允许语音信息的接收。这一功能对于那些想要减少垃圾信息干扰或保护隐私的用户来说具有重要意义。 首先,...

    Android源码apk settings调试

    在Android系统开发中,深入理解并调试源码是提升应用性能和优化用户体验的关键步骤。"Android源码apk settings调试"这个话题主要涉及如何在Android系统源码层面调试Settings应用程序,这是一个核心系统应用,用于...

    Java语言中非阻塞算法的实现.zip

    非阻塞算法在Java语言中的实现是一个复杂而深入的话题,涉及到并发编程、多线程以及高效数据结构的设计。非阻塞算法,也称为无锁算法,主要特点是避免了线程间的互斥,使得多个线程可以同时进行计算,从而提高了系统...

    c# datagridview 撤销/恢复 (undo/redo)

    在C#编程中,`DataGridView`控件是Windows Forms应用程序中常用的数据展示和编辑工具。它允许用户查看和操作表格形式的数据。撤销/恢复(Undo/Redo)功能是许多用户交互密集型应用的重要特性,它使用户可以撤消最近...

    关于中非贸易便利化与跨境电商合作机遇的讨论.zip

    《关于中非贸易便利化与跨境电商合作机遇的讨论》这篇文档深入探讨了在全球化背景下,中国与非洲国家在贸易领域的互动以及跨境电商所带来的新机遇。中非贸易关系历史悠久,近年来随着中国的经济崛起和非洲国家的发展...

Global site tag (gtag.js) - Google Analytics