`
david01205
  • 浏览: 85377 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

android ui线程和数据的分离

 
阅读更多

       android会启动一个主线程(MainThread),主线程负责处理和ui相关的事件,因此主线程通常又叫UI线程。而由于Android采用UI单线程模型,所以只能在主线程中对UI元素进行操作。由于主线程是单线程模型,对于一些费时的操作,不能放在主线程中处理,要开一个多线程来处理这些费时的操作如请求服务器更新数据。在我们项目中一般采用Thread+Handler的方式进行非界面的数据更新。

        有一次由于写代码很忙,没有用Thread+Handler的形式来更新非ui线程的数据,所有操作都在ui线程,由于请求后台需要花费5秒以上的时间(服务器/后台的网络十分不给力),界面点击后出现黑屏死屏现象。

  

 

 

分享到:
评论

相关推荐

    《Android高级编程》

    2.5 小结 第3章 创建应用程序和活动 3.1 Android应用程序的组成部分 3.2 程序清单简介 3.3 使用清单编辑器 3.4 Android应用程序生命周期 3.5 理解应用程序的优先级和进程状态 3.6 分离资源 3.6.1 创建资源 3.6.2 ...

    Android高级编程--源代码

    4.1 Android UI基本设计 74 4.2 View简介 74 4.2.1 使用View创建Activity(活动)用户界面 75 4.2.2 Android Widget工具箱 76 4.3 布局简介 77 4.4 创建新的View 78 4.4.1 修改现有的View 79 4.4.2 创建复合...

    python GUI库图形界面开发之PyQt5 UI主线程与耗时线程分离详细方法实例

    在做界面开发时,无论是移动端的Android,还是我们这里讲的PyQt5,经常会有一个界面开发准则,那就是UI主线程与耗时子线程一定要分开,主线程负责刷新界面,耗时操作,如网络交互、磁盘IO等,都应该放在子线程里执行...

    Android 常用六大框架

    (2) 在UI线程外进行http请求 (3) 文件断点上传 (4) 智能重试 (5) 默认gzip压缩 (6) 支持解析成Json格式 (7) 可将Cookies持久化到SharedPreferences 3、Afinal框架 项目地址:...

    Android高级编程.pdf

    4.1 Android UI基本设计 4.2 View简介 4.2.1 使用View创建Activity(活动)用户界面 4.2.2 Android Widget工具箱 4.3 布局简介 4.4 创建新的View 4.4.1 修改现有的View 4.4.2 创建复合控件 4.4.3 创建定制的Widget和...

    Android代码-MEngine

    UI与业务线程分离 多WebView且同时加载 ps:目前仅支持Android 1 Hello World 上手只用三分钟 Step 1 创建文件夹,名称自定义(推荐以bundle开头),如:bundleHelloWorld 每一个独立的页面属于一个bundle 在...

    Android ThinkAndroid开发框架.zip

    ioc模块:android中的ioc模块,完全注解方式就可以进行UI绑定、res中的资源的读取、以及对象的初始化。 数据库模块:android中的orm框架,使用了线程池对sqlite进行操作。 http模块:通过httpclient进行封装http...

    Android项目源码ThinkAndroid开发框架.zip

    ioc模块:android中的ioc模块,完全注解方式就可以进行UI绑定、res中的资源的读取、以及对象的初始化。 数据库模块:android中的orm框架,使用了线程池对sqlite进行操作。 http模块:通过httpclient进行封装http...

    Android的ListView/GridView的开源组件

    源码smoothie,smoothie是一个开源的组件,提供了简单的API异步加载Android ListView/GridView的项目,以和UI线程分离。Smoothie是手势识别:在Fling手势时,它会必须发起加载项目请求;在滑动列表时,当你的手指按...

    word源码java-MobileBankApp:AndroidOS上的模拟手机银行APP

    客户端展示了基于androidOS的编程方法和框架,例如Acticity类、Fragment类的使用以及UI/Main线程和worker线程的分离。 客户端-服务器消息传输层基于TCP/IP协议实现消息封装、拆分和一些相关的传输机制。 演示 存储库...

    activiti-userguide-5-16中文开发手册(pdf版)

    编制的UI界面,可以使UI和具体实现完全分离。 onPause()函数是处理用户离开当前 Activity 的地方。更重要的是,任何在当前 Activity中的任何改变都要在这个函数中提交。 Activity有四种状态: 活动状态,当Activity...

    JAVA上百实例源码以及开源项目源代码

     Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、火焰效果的线程、Applet的高度,图片到图片装载器、绘制火焰效果的X坐标...

    java开源包1

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包11

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包2

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包3

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包6

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包5

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包10

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包4

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

Global site tag (gtag.js) - Google Analytics