- 博客(43)
- 资源 (2)
- 收藏
- 关注
转载 Android开发中的多线程
import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;public class textThread2 extends Frame implements Runnable, ActionListener {public Label label;pu
2016-08-13 11:09:31
380
转载 Android中的几种多线程实现
有以下几种方式:1)Activity.runOnUiThread(Runnable)2)View.post(Runnable) ;View.postDelay(Runnable , long)3)Handler4)AsyncTaskAndroid是单线程模型,这意味着Android UI操作并不是线程安全的并且这些操作必须在UI线程中执行,所以你单纯的new
2016-08-13 10:20:21
516
翻译 AsyncTask的用法
在开发Android应用时必须遵守单线程模型的原则: Android UI操作并不是线程安全的并且这些操作必须在UI线程中执行。在单线程模型中始终要记住两条法则:1. 不要阻塞UI线程 2. 确保只在UI线程中访问Android UI工具包 当一个程序第一次启动时,Android会同时启动一个对应的主线程(Main Thread),主线程主要负责处理与UI相关的事件,如:用
2016-08-11 23:59:55
372
翻译 AsyncTask使用方法
看上去修改后的connect()方法已经可用了,但是这种匿名线程的方式是存在缺陷的:第一,线程的开销较大,如果每个任务都要创建一个线程,那么应用 程序的效率要低很多;第二,线程无法管理,匿名线程创建并启动后就不受程序的控制了,如果有很多个请求发送,那么就会启动非常多的线程,系统将不堪重负。 另外,前面已经看到,在新线程中更新UI还必须要引入handler,这让代码看上去非常臃肿。
2016-08-11 23:53:58
458
翻译 Android开发中进程和线程
任务、进程和线程 关于Android中的组件和应用,之前涉及,大都是静态的概念。而当一个应用运行起来,就难免会需要关心进程、线程这样的概念。在Android中,组件的动态运行,有一个最与众不同的概念,就是Task,翻译成任务,应该还是比较顺理成章的。 Task的介入,最主要的作用,是将组件之间的连接,从进程概念的细节中剥离出来,可以以一种不同模型的东西进行配置,在很多时候,能够简化
2016-08-11 23:49:33
552
翻译 Android开发之Handler
前几天,和同事探讨了一下Android中的消息机制,探究了消息的发送和接收过程以及与线程之间的关系。虽然我们经常使用这些基础的东西,但对于其内部原理的了解,能使我们更加容易、合理地架构系统,并避免一些低级错误。对于这部分的内容,将分成4小节来描述:1.职责与关系2.消息循环3.线程与更新4.几点小结--------------------------
2016-08-11 23:48:42
205
翻译 AsyncTask使用详解
一、基础篇1)UI线程概念 Android为单线程模型。当一个程序第一次启动时,Android会自动创建一个对应的主线程(Main Thread)。它负责把事件分派到相应的控件,用于用户与Android控件进行交互。所以通常又被叫做UI线程。 在开发Android应用时必须遵守单线程模型的原则:Android UI操作并不是线程安全的并且这些操作
2016-08-11 23:47:35
661
翻译 AsyncTask对照 Thread加Handler
AsyncTask对比 Thread加HandlerAndroid平台很多应用使用的都是AsyncTask,而并非Thread和Handler去更新UI,这给大家说下他们到底有什么区别,我们平时应该使用哪种解决方案。从Android 1.5开始系统将AsyncTask引入到android.os包中,过去在很早1.1和1.0 SDK时其实官方将其命名为UserTask,其内部是jdk 1
2016-08-11 23:42:33
277
翻译 Android开发-Looper类介绍
Android中的Looper类,是用来封装消息循环和消息队列的一个类,用于在android线程中进行消息处理。handler其实可以看做是一个工具类,用来向消息队列中插入消息的。 (1) Looper类用来为一个线程开启一个消息循环。 默认情况下android中新诞生的线程是没有开启消息循环的。(主线程除外,主线程系统会自动为其创建Looper对象,开启消息循环。)
2016-08-11 23:41:41
281
翻译 Android Looper和Handler
Message:消息,其中包含了消息ID,消息处理对象以及处理的数据等,由MessageQueue统一列队,终由Handler处理。Handler:处理者,负责Message的发送及处理。使用Handler时,需要实现handleMessage(Message msg)方法来对特定的Message进行处理,例如更新UI等。MessageQueue:消息队列,用来存放Handler发送过
2016-08-11 23:39:25
614
翻译 Android Looper详解
在Android下面也有多线程的概念,在C/C++中,子线程可以是一个函数, 一般都是一个带有循环的函数,来处理某些数据,优先线程只是一个复杂的运算过程,所以可能不需要while循环,运算完成,函数结束,线程就销毁。对于那 些需要控制的线程,一般我们都是和互斥锁相互关联,从而来控制线程的进度,一般我们创建子线程,一种线程是很常见的,那就是带有消息循环的线程。消息循环是一个很有用的线程方
2016-08-11 23:35:29
382
翻译 android Content Provider详解八-实现ContentProvider
实现ContentProvider MIME 类型ContentProvider 有两个方法返回MIME类型。getType()一个对任何provider都要实现的方法。getStreamTypes()如果你的provider提供的是文件,此方法是期望被实现的。 表的MIME类型们getType()方法返回一个MIME格式的String
2016-08-11 23:29:17
424
翻译 android Content Provider详解七-实现ContentProvider
实现ContentProvider类ContentProvider 实例管理对一个结构型数据集的操作以处理从另外一个应用发来的请求。所有的操作最终都调用ContentResolver,然后它又调用ContentProvider 的一个具体的方法。查询方法们虚类 ContentProvider 定义了六个虚方法,你必须在你的派生类中实现它们。这些方法们,除了 onCreate()
2016-08-11 23:28:54
480
翻译 android Content Provider详解六
创建一个Content Providercontent provider管理对中央数据仓库的存取。你实现一个provider,就是在一个Android应用中实现一个或多个类,再加上manifest文件中的一些元素。你实现一个 ContentProvider的子类,它作为你的provider和其它应也之间的接口。尽管content providers的目的是向其它应用提供数据,但当然
2016-08-11 23:28:14
558
翻译 ContentProvider详解5
资源描述:契约类契约类定义了帮助应用使用content URIs的常量,列名,intent action们,和其它contentprovider特性。契约类不会被provider自动包含;provider开发者必须定义它们然后使它们对其它开发者生效。Android平台中包含的很多provider都在包android.provider中有对应的契约类。例如,用户词典Provider具有一
2016-08-11 23:26:24
254
翻译 ContentProvider详解4
Provider数据类型Contentproviders能识别多种不同的数据类型.用户词典只识别文本类型,但其它provider可以识别下列格式:整型长整型(long)浮点长浮点(double)另一个provider经常使用的数据类型是"大二进对象"(BLOB) ,它就像一个64KB的字节数组.你可以通过[url=]Cursor[/u
2016-08-11 23:25:15
212
翻译 ContentProvider详解3
Content Provider 的权限一个具有provider的应用可以指定其它要操作自己的数据所应具有的权限.这些权限保证了用户能了解一个应用将要操作那个数据.其它应用需基于provider的需求请求相应的权限.用户在安装应用时会看到它们所请求的权限.如果一个provider的应用没有指定任务权限,那么其它应用就不能操作provider的数据.然而,provider所在的应
2016-08-11 23:24:21
327
翻译 ContentProvider详解2
从Provider取得data本节讲述了如何从provider取得数据,使用用户词典作为例子.为了清析易懂,本节中调用ContentResolver.query()的代码片断置于"UI 线程"中.但是,在实际代码中,你应该在另一个线程执行查询动作,这样做的一种方法是使用CursorLoader 类.而,那几行示例代码仅是片断,它们不能展示一个完整的应用.要从provider
2016-08-11 23:23:04
445
翻译 Content Provider详解1
内容提供者-Content ProviderContent providers管理对结构化数据集的使用.它们封装数据,并提供了数据安全的机制.Content providers是从一个进程连接另一个进程中的数据的标准接口.当你想使用一个content provider中的数据,你需在你的应用的Context 中使用ContentResolver对象作为客户端与provi
2016-08-11 23:20:07
320
原创 Android - Looper - Handler
Message:消息,其中包含了消息ID,消息处理对象以及处理的数据等,由MessageQueue统一列队,终由Handler处理。Handler:处理者,负责Message的发送及处理。使用Handler时,需要实现handleMessage(Message msg)方法来对特定的Message进行处理,例如更新UI等。MessageQueue:消息队列,用来存放Handle
2016-08-11 21:51:40
377
转载 Java程序优化的一些最佳实践
Java程序优化的一些最佳实践摘要:本文介绍了Java代码优化的过程,总结了优化Java程序的一些最佳实践,分析了进行优化的方法并解释了性能提升的原因。多角度分析导致性能低的原因并逐个进行优化使得程序性能得到极大提升,代码可读性、可扩展性更强。作者通过经历的一个项目实例,介绍Java代码优化的过程,总结了优化Java程序的一些最佳实践,分析了进行优化的方法,并解释了性能
2016-08-05 10:08:27
225
转载 Android调用jni全过程
Android调用jni全过程个人记录下调用jni全过程,省的自己忘记了。哎。有些需要准备的地方,ndk环境,ndk源码一份,cygwin要装好,配好profile。java要配好环境变量。1.首先新建一个工程,建个类对调用native的方法进行声明。package com.stay.jni;public class CallNative {
2016-07-15 11:52:30
320
转载 android Fragments详解四:管理fragment
android Fragments详解四:管理fragment要管理fragment们,需使用FragmentManager,要获取它,需在activity中调用方法getFragmentManager()。你可以用FragmentManager来做以上事情: 1使用方法findFragmentById()或findFragmentByTag(),获取activity中已存在的
2016-06-25 15:02:11
290
转载 内存溢出和内存泄漏的区别
内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;比如申请了一个integer,但给它存了long才能存下的数,那就是内存溢出。内存泄露 memory leak,是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。memory leak会最终会导
2016-06-18 11:05:43
231
转载 多线程与异步的区别
多线程与异步的区别 随着拥有多个硬线程CPU(超线程、双核)的普及,多线程和异步操作等并发程序设计方法也受到了更多的关注和讨论。本文主要是想与园中各位高手一同探讨一下如何使用并发来最大化程序的性能。 多线程和异步操作的异同 多线程和异步操作两者都可以达到避免调用线程阻塞的目的,从而提高软件的可响应性。甚至有些时候我们就认为多线程和异步操作
2016-06-18 10:28:35
9284
转载 架构和框架的区别
2.3.2 架构和框架的区别笔者发现,人们对软件架构存在非常多的误解,其中一个最为普遍的误解就是:将架构(Architecture)和框架(Framework)混为一谈。一图胜千言,图2-9切中肯綮地点出了架构和框架的区别。一句话,框架是软件,架构不是软件。框架是一种特殊的软件,它并不能提供完整无缺的解决方案,而是为你构建解决方案提供良好的基础。框架是半成品。典型地,框架
2016-06-12 10:50:27
269
转载 Serializable 和 Parcelable 两种序列化
Serializable 和 Parcelable 两种序列化什么时候用的到序列化? 1、永久性保存对象,保存对象的字节序列到本地文件中 2、通过序列化对象在网络中传递对象 3、通过序列化在进程之间传递对象在安卓中,可以用作在Activity中传递复杂类型,主要是将自己的类转换为基础的字节数组,Android中Activit
2016-06-11 15:31:25
434
转载 Android之Adapter用法总结
Android之Adapter用法总结1.概念 Adapter是连接后端数据和前端显示的适配器接口,是数据和UI(View)之间一个重要的纽带。在常见的View(ListView,GridView)等地方都需要用到Adapter。如下图直观的表达了Data、Adapter、View三者的关系:Android中所有的Adapter一览: 由图可
2016-05-29 13:38:46
247
原创 onInterceptTouchEvent和onTouchEvent调用时序——博客园
onInterceptTouchEvent和onTouchEvent调用时序http://www.blogjava.net/TiGERTiAN/archive/2011/02/22/344869.html
2016-05-28 16:23:26
220
原创 面试问题
Android应用程序的入口点是什么?ActivityThread?onCreate?是一个搞 Android 开发的朋友,面试的时候被问一个"Android应用程序的入口点是什么?"他回答ActivityThread,结果面试的人一脸茫然;他再说onCreate,面试官就”说这就对了嘛”添加评论按投票排序按时间排序我知道楼主是来
2016-05-28 16:14:02
273
转载 Fragment
fragment简单例子转载请注明出处:http://blog.youkuaiyun.com/guolin_blog/article/details/8881711我们都知道,Android上的界面展示都是通过Activity实现的,Activity实在是太常用了,我相信大家都已经非常熟悉了,这里就不再赘述。但是Activity也有它的局限性,同样的界面在手
2016-05-28 16:03:25
218
转载 Bundler
android Bundle的使用bundle的认识: 一种存放字符串和Parcelable类型数据的map类型的容器类,通过存放数据键(key)获取对应的各种类型的值(value),而且必须通过键(key)获取。bundle的用法: Bundle相当于Map类,就是一个映射,用Bundle绑定数据,便于数据处理 它主要作用于Ac
2016-05-28 14:30:20
405
转载 Handler
Handler的定义: 主要接受子线程发送的数据, 并用此数据配合主线程更新UI. 解释: 当应用程序启动时,Android首先会开启一个主线程 (也就是UI线程) , 主线程为管理界面中的UI控件,进行事件分发, 比如说, 你要是点击一个 Button ,Android会分发事件到Button上,来响应你的操作。 如果此时需要一个耗时的操作,
2016-05-28 14:16:00
222
转载 android 异步回调机制
android事件处理:基于监听,基于回调。基于监听,是为android界面组件绑定特定的事件监听器。主要处理一些特定的事件。基于回调,时重写android组件特定的回调方法,或者重写activity的回调方法。android为绝大部分界面组件都提供了事件响应的回调方法。可以用于处理一些具有通用性的事件。对于基于监听的事件处理模型来说,事件源和事件监听器是分离的,当事件源上发生
2016-05-28 09:42:22
344
转载 Android 序列化
Intent传递对象——Serializable和Parcelable区别博客分类: android sdk adt Intent在不同的组件中传递对象数据的应用非常普遍。下面介绍两种通过Intent传递对象的方法。1、实现Serializable接口2、实现Parcelable接口 为什么要将对象序列化? 1、永久性
2016-05-27 20:49:16
252
原创 回调机制
Java中的回调机制 CallbackPresenter{ loadContacts(){ Model model = new Model(); model.queryAll(new Callback(){ void setView(List list){ view.setAdapter(list); }
2016-05-26 18:37:12
180
翻译 MVP
---------------------------------------Android开发架构------MVPMVC View 视图层 Controller 控制器 Model 模型层 MVP View 视图层 Presenter 主导器 Model 模型层View层IUserView{ void showSuccess(); v
2016-05-26 18:33:22
247
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人