摘要: Android开发过程中为什么要多线程?答:我们创建的Service、Activity以及Broadcast均是一个主线程处理,这里我们可以理解为UI线程。但是在操作一些耗时操作时,比如I/O读写的大文件读写,数据库操作以及网络下载需要很长时间,为了不阻塞用户界面,出现ANR的响应提示窗口,这个时候我们可以考虑使用Thread线程来解决。Android中使用Thread线程会遇到哪些问题?答:对于Android平台来说UI控件都没有设计成为线程安全类型,所以需要引入一些同步的机制来使其刷新,这点Google在设计Android时倒是参考了下Win32的消息处理机制。Handler原理:Hand 阅读全文
posted @ 2014-01-29 01:13 VIJAY-YAN 阅读(219) 评论(0) 推荐(0) 编辑
摘要: AIDL:Android接口定义语言Android Interface Definition Language (AIDL)官方文档链接:http://developer.android.com/guide/components/aidl.html一. 使用AIDL的步骤:1. 新建一个interface,声明Activity需要调用Service的方法2. 修改接口文件的扩展名为“.aidl”,点击项目,按F5刷新3. 拷贝aidl文件到客户端项目中, 注意:aidl所在报名必须完全一致4. Service中的Binder继承aidl文件名.Stub5. 在Activity中的onSe... 阅读全文
posted @ 2014-01-28 21:45 VIJAY-YAN 阅读(245) 评论(0) 推荐(0) 编辑
摘要: LocalService乃只能由承载该Service的Application访问,无法提供在设备上运行的其他Application访问。LocalService由Context.startCommand()启动,启动以后,这些类型的服务将持续运行,知道客户端调用服务的Context.stopService()或者服务自己调用stopSelf()。如果在Service启动之后调用Context.startCommand()不会为Service创建另一个实例,但这样做将重新调用正在运行的Service的onStartCommand()方法。下面将用一个实例进行解析BackgroundService 阅读全文
posted @ 2014-01-28 21:29 VIJAY-YAN 阅读(465) 评论(0) 推荐(0) 编辑
摘要: 好不容易撑到学习HttpService了,也是我最喜欢学习的部分。首先介绍一下Apache HttpClient,HttpClient是一个完善的HTTP客户端。虽然它提供了对HTTP协议的全面支持,但我们仅可以使用HTTP GET和HTTP POST。HttpClient的一般使用模式:(1)创建一个HttpClient(或者获取现有的进行引用)(2)实例化HTTP方法,例如PostMethod或者GetMethod(3)设置HTTP参数名称/值(4)使用HttpClient执行HTTP调用(5)处理HTTP响应(6)释放资源案例:HttpGet请求//创建一个HttpClient对象Htt 阅读全文
posted @ 2014-01-28 12:02 VIJAY-YAN 阅读(1606) 评论(0) 推荐(0) 编辑
摘要: Fragment提供了把UI分解成不同组成部分的方法,从而使得每一个部分都能在其运行的设备上以正确的形式被展现。在手机上,列表视图会占据整个屏幕,点击一个列表项将会把用户带到新的屏幕以展示内容。但是在平板电脑上,列表视图只显示一部分,内容也会被同步展示。Fragment生命周期:1、onCreate回调函数:onAttach()第一次与Activity时调用 onCreate()初始化Fragment onCreateView()创建Fragment的视图层级 onActivityCreated()当Host活动已经完成了对其onCreate... 阅读全文
posted @ 2014-01-25 16:55 VIJAY-YAN 阅读(279) 评论(0) 推荐(0) 编辑
摘要: Android应用发展得越来越快,布局也随之变得越来越复杂,在Android中布局文件也可以像Java代码一样具有复用性,使得代码可以变得清晰。 Android布局代码实现复用性主要是利用include和merge这两个关键字1、includeAndroid提供了在一个布局中包含另一个布局的简单方法:标签 sub_layout.xml 2、merge如果经常使用标签,布局会变得因嵌套过多从而导致UI绘图变慢。标签可以用来解决这个问题。 3、ViewStub 尽管标签能够很容易把UI分离成可复用的组件,但会发现包含的布局很少会被用到。类似于进度和错误蓝的布... 阅读全文
posted @ 2014-01-25 10:59 VIJAY-YAN 阅读(2772) 评论(0) 推荐(0) 编辑
摘要: 一个不可忽视的控件,几乎和互联网和用户有关的,都会涉及到ListView,今天介绍一个高效的ListView写法,并介绍ListViewAdapter五步法在Activity中,ListView的写法千篇一律第一步:加载数据List data = new ArrayList();for(int i=0;iT get(View view,int id){ SparseArray viewHolder = (SparseArray)view.getTag(); if (viewHolder == null) { ... 阅读全文
posted @ 2014-01-24 22:16 VIJAY-YAN 阅读(202) 评论(0) 推荐(0) 编辑
摘要: Intent简单来说,就是一个传送门,就是把通过Intent,就可以到另外一个地方。关键是Intent还是一扇可以携带东西的传送门,好比是去机场坐飞机,行李也会让从另外一种方式随你到另外一个地方。Intent的日常使用方式如下一般的反射操作String actionName= "com.androidbook.intent.action.ShowBasicView";Intent intent = new Intent(actionName);activity.startActivity(intent);调用浏览器并打开某个网页Intent intent = new Int 阅读全文
posted @ 2014-01-23 16:59 VIJAY-YAN 阅读(157) 评论(0) 推荐(0) 编辑
摘要: ContentProvider是Android四大组件之一,也是一个Android应用与外界交流的媒介之一,通常被称为“数据共享接口”ContentProvider并没有想象中那么难,原理就和JDBC一样,通过和数据存储媒体建立一个桥,然后通过特定的通讯语句去进行数据的增删改查。下面是一个对手机图书SQLite的增删改查第一步:规划数据库,通过写定各种常量去确定SQLite的属性 public static final String AUTHORITY = "com.androidbook.provider.BookProvider"; public static fina 阅读全文
posted @ 2014-01-23 16:50 VIJAY-YAN 阅读(300) 评论(0) 推荐(0) 编辑
摘要: XML文件的读写方式基本上是利用DroidDraw,而且也很少有难的地方,复杂布局尽量用Relative,简单布局用LinearLayout,较为特殊的时候使用FrameLayot,另外两个AbsoluteLayout和TableLayout很少使用。 记录一部分用Java实现的功能】Image //Call getDrawable to get the image Drawable d = getResources().getDrawable(R.drawable.sample_image); //You can use the drawable th... 阅读全文
posted @ 2014-01-23 16:18 VIJAY-YAN 阅读(234) 评论(0) 推荐(0) 编辑