Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux

Android异步处理四:AsyncTask的实现原理

Android异步处理四:AsyncTask的实现原理

在《Android异步处理二:使用AsyncTask异步更新UI界面》一文中,我们介绍了如何使用AsyncTask实现异步下载图片,并且更新图片到UI界面的方法。本篇我们将学习Framework层AsyncTask的实现原理。概述:AsyncTask的本质是一个线程池,所有提交的异步任务都会在这个线程池中的工作线程内执行,当工作线程需要跟UI线程交互时,工作线程会通过向在UI线程创建的Handler(原理见:《Android异步处理三:Handler+Lo...
Android多线程任务的优化1:AsyncTask的缺陷

Android多线程任务的优化1:AsyncTask的缺陷

导语:在开发Android应用的过程中,我们需要时刻注意保障应用的稳定性和界面响应性,因为不稳定或者响应速度慢的应用将会给用户带来非常差的交互体验。在越来越讲究用户体验的大环境下,用户也许会因为应用的一次Force Close(简称FC)或者延迟严重的动画效果而卸载你的应用。由于现在的应用大多需要异步连接网络,本系列文章就以构建网络应用为例,从稳定性和响应性两个角度分析多线程网络任务的性能优化方法。概述:为了不阻塞UI线程(亦称主线程),提高应用的响应性,...
Linux:C应用程序终端输出字体颜色的改变

Linux:C应用程序终端输出字体颜色的改变

使用33[01;04;32;41m之类的配色方案在需要输出显示的文本之前,可以改变应用程序输出文本的颜色或者背景颜色。color_hello.c#include<stdio.h> intmain() { printf("33[01;34mHelloWorld33[0m "); return0; }上面的01表示加粗,34表示是蓝色,后面33[0m表示恢复所有的属性为原来的默认值。更多关于颜色的参考,这篇文章有非常详细的叙述。也可以把上述的3...
基于FS2410的SQLite移植

基于FS2410的SQLite移植

一、引言 本文将简要介绍如何在FS2410平台上移植SQLite嵌入式数据库。SQLite是一个采用C语言开发的嵌入式数据库引擎。在不至于引起混淆的情况下,本文也将其简称为QLite3。数据库的目标是实现对数据的存储、检索等功能。传统的数据库产品除提供了基本的查询、添加、删除等功能外,也提供了很多高级特性,如触发器、存储过程、数据备份恢复等。但实际上用到这些高级功能的时候并不多,应用中频繁用到的还是数据库的基本功能。于是,在一些特殊的应用场合,传统的数据库...
移植蓝牙协议栈及其工具到嵌入式ARM Linux下

移植蓝牙协议栈及其工具到嵌入式ARM Linux下

目前,蓝牙技术已经比较成熟,特别是基于手机和PC得蓝牙文件传输。本文主要讲述基于嵌入式arm linux的蓝牙文件传输。现行2.6.x的linux内核都已经集成了bluez蓝牙驱动,对于2.4版本内核的需要到bluez官方网站下载并安装bluez蓝牙驱动。本为基于2.6版本的内核讲述。对于2.4下载bluez后安装即可。有了bluez蓝牙驱动还需要安装bluez-libs库和bluez-utils工具蓝牙文件传输应用开发分为2部分,On pc 和on AR...
Linux下Bluetooth编程

Linux下Bluetooth编程

一:Bluetooth基本概念:Bluetooth是爱立信、诺基亚、东芝、IBM和Intel 5家公司在1998年联合推出的一项无线网络技术。其宗旨是提供一种短距离、低成本的无线传输应用技术。在行业协会筹备阶段,需要一个极具有表现力的名字来命名这项高新技术。行业组织人员,在经过一夜关于欧洲历史和未来无限技术发展的讨论后,有些人认为用Blatand国王的名字命名再合适不过了。Blatand国王将现在的挪威,瑞典和丹麦统一起来;就如同这项即将面世的技术,将标准...
Linux platform设备和驱动

Linux platform设备和驱动

platform 设备与驱动一. 概述 platform设备和驱动与linux设备模型密切相关。platform在linux设备模型中,其实就是一种虚拟总线没有对应的硬件结构。它的主要作用就是管理系统的外设资源,比如io内存,中断信号线。现在大多数处理器芯片都是soc,如s3c2440,它包括处理器内核(arm920t)和系统的外设(lcd接口,nandflash接口等)。linux在引入了platform机制之后,内核假设所有的这些外设都挂载在plat...
Linux C获取网页title

Linux C获取网页title

1. http 的知识,你需要使用 HTTP GET/POST 请网页2. 把网页请求下来,会得到一个 html,然后解析它3. 解析网页之后找到用户名与密码字段,最后打包出一个 HTTP POST 请求,完成用户名和密码提交4. 服务器会返回一个 HTTP 回应,你解析相应的 html 判断正确与否实践证明上面的思路是对HTTP协议不了解的结果,这样做的话基本上是做不出来的。客户端请求GET / HTTP/1.1 Host:www.google.com获...
Android开发之错误解决办法

Android开发之错误解决办法

今天在debug的时候遇到这样一个错误:Launch error: Failed to connect to remote VM. Connection timed out.网上查了下也没找到解决办法,于是自己试了下,发现只要在debug里面选到你的工程,然后右键选择Terminate and Remove也就是结束和移除选项或者选择Terminate (结束)也可以,然后再重新点debug就OK了!(最后面有图)具体原因好像是因为虽然断开连接了,但是这个...
如何在Eclipse中浏览Android源码

如何在Eclipse中浏览Android源码

Google的Android SDK包括了android.jar,这个Jar文件包含了Android公有API类文件。他们还提供了一个Eclipse插件,这使得开始Android上的开发相当简单。然而,你却不能找到androidSrc.jar这个Jar文件,所以当你想要在Eclipse中看一下Android SDK源代码的时候,你会碰到如图所示的情况:开源来解救我们了!这个月早些时候,Google开放了Android的全部源码,顺便说一下,这相当大!不管怎...
Java中的定时器Timer的使用及实例

Java中的定时器Timer的使用及实例

在一个Android项目中用过一个定时器,就是五分中之后没有对程序进行操作,让程序自动退出。现在写一下几个常用的方式,就以定时炸弹为例1,两秒之后炸弹爆炸//定义一个两秒之后的定时器,两秒之后爆炸 Timer timer1 = new Timer(); timer1.schedule(new TimerTask(){ @Override public void run() { System.out.println("炸弹爆炸..."); } }, 200...
Android软键盘的一些控制

Android软键盘的一些控制

"EditText + Button" 形成一个 "输入+按键响应" 的案例在Android编程中是最常见不过的了。但还有一些细节需要注意:在EditText输入后,点击Button进行请求,软键盘应该自行消失 在EditText输入后,不点击Button进行请求,而是直接点击软键盘上的"回车",那么也应该能够正常响应请求针对问题1,可以在响应Button的onClick事件中,主动将软键盘隐藏,加入如下代码即可InputMethodManagerimm=...
Android自定义ListView的Item无法响应OnItemClick的解决办法

Android自定义ListView的Item无法响应OnItemClick的解决办法

如果你的自定义ListViewItem中有Button或者Checkable的子类控件的话,那么默认focus是交给了子控件,而ListView的Item能被选中的基础是它能获取Focus,也就是说我们可以通过将ListView中Item中包含的所有控件的focusable属性设置为false,这样的话ListView的Item自动获得了Focus的权限,也就可以被选中了我们可以通过对Item Layout的根控件设置其Android:descendant...
Android入门之ProgressDialog(纯Java)

Android入门之ProgressDialog(纯Java)

注意:1、ProgressDialog.STYLE_SPINNER为圆形不确定进度条2、ProgressDialog.STYLE_HORIZONTAL为条形进图条,当设置为可确定进度的进度条时,在调用show()函数之前设置进度无效,百分比始终为0。第二进度可设置,但是在show()之前设置没什么意义。不管是静态显示抑或是动态显示,都要在show()函数调用之后再操作。 importAndroid.app.Activity;importandroid.a...
<< 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 >>