自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

FireOfStar的专栏

宁静致远

  • 博客(67)
  • 资源 (11)
  • 收藏
  • 关注

翻译 Android 内容提供器---内容提供器基础(内容的统一资源标识(URIs))

内容URI是在提供器中标识数据统一资源标识。内容的统一资源标识包括完整的提供器的符号名和所指向的一个表名。当你调用一个客户端方法来访问提供器中的一个表时,这个表的内容的统一资源标识就应该是参数之一。在前面的代码行中,常量CONTENT_URI包含了用户字典的“words”表的统一资源标识。ContentResolver对象分析出URI的授权,并且使用这个授权跟已知的系统表的授权进行比较来找到内

2012-02-29 19:34:17 1430

翻译 Android 内容提供器---内容提供器基础(访问提供器)

应用程序使用ContentResolver客户端对象访问来自客户端的数据。这个对象有一些与提供器中相同的命名的方法,提供器是ContentProvider的一个具体的子类的实例。ContentResolver对象的方法提供了基本的“CRUD”(创建、获取、更新和删除)持久化保存的功能。在客户端应用程序的进程中的ContentResolver对象和提供器自己应用中的ContentProvider

2012-02-29 19:32:57 1341

翻译 Android 内容提供器---内容提供器基础(概述)

内容提供器管理着对数据的核心资源库的访问。并且提供器是Android应用程序的一部分,它经常为了跟数据协同工作而提供自己的UI。但是内容提供器的主要目的是提供其他应用程序使用,它们使用提供器的客户端对象访问提供器。提供器和提供器客户端一起给处理进程间通信的数据和安全数据访问提供了一个一致的、标准的接口。这个主题主要介绍以下基础内容:1. 内容提供器是如何工作的;2. 使用API从内容提

2012-02-29 19:31:23 1371

翻译 Android 内容提供器---简介

内容提供器管理结构化的数据集的访问。它们封装数据、提供定义数据安全的机制。内容提供器是用运行在另一个进程中的代码连接另一个进程中的数据的标准接口。当你想要访问内容提供器中的数据时,使用应用程序的Context中的ContentResolver对象作为客户端跟提供器进行通信。跟ContentResolver对象进行通信的提供器对象是ContentProvider实现类的一个实例。这个提供器对象接

2012-02-29 19:29:28 3219

翻译 Android 绑定类型服务---管理绑定类型服务的生命周期

当服务从所有的客户端解除绑定时,Android系统会销毁它(除非它还用onStartCommand()方法被启动了)。因此如果是纯粹的绑定类型的服务,你不需要管理服务的生命周期---Android系统会基于是否有客户端绑定了这个服务来管理它。但是,你选择实现了onStartCommand()回调方法,那么你就必须明确的终止这个服务,因为系统被认为是启动类型的。这样服务就会一直运行到服务用sto

2012-02-29 19:25:34 2101

翻译 Android 绑定类型服务---其他注意事项

以下是关于绑定的重要注意事项:1. 你应该始终捕获DeadObjectException异常,当连接被中断时这个异常被抛出。这是由远程方法抛出的唯一异常。2. 对象的引用计数是跨进程的。3. 通常绑定和解除绑定应该成对使用,而且要跟客户端的生命周期的启动和退出时刻匹配。例如:如果你只需要在Activity可见的时候跟服务交互,那么就应该在onStart()期间绑定在onStop()

2012-02-29 19:23:33 2515

转载 目标的价值

大唐贞观年间,在长安城西的一家磨坊里有一匹瘦马和一头黑驴。它们是好朋友,经常在一起谈心。马负责为主人拉车运货,驴子的工作是在屋里推磨。贞观四年,这匹马被玄奘大师选中,接受了一项艰巨的任务,与大师一起动身去天竺国大雷音寺取三藏真经。13年后,这匹马跟着大师经历了千辛万苦,驮着佛经回到长安。大师受到重赏,而马也被人们精心打扮一番与大师形影不离,跟随大师去全国各地讲经。不久,朋友见面,老马跟驴子

2012-02-28 20:02:15 1385

转载 小故事大道理

(一)关于压力有一位讲师正在给学生们上课,大家都认真地听着。寂静的教室里传出一个浑厚的声音:"各位认为这杯水有多重?"说着,讲师拿起一杯水。有人说二百克,也有人说三百克。"是的,它只有二百克。那么,你们可以将这杯水端在手中多久?"讲师又问。很多人都笑了:二百克而已,拿多久又会怎么样!讲师没有笑,他接着说:"拿一分钟,各位一定觉得没问题;拿一个小时,可能觉得手酸;拿一天呢?一个星期呢?那可能

2012-02-28 20:00:44 1300

翻译 Android 绑定类型服务---绑定服务

应用程序组件(客户端)通过调用bindService()方法能够绑定服务,然后Android系统会调用服务的onBind()回调方法,这个方法会返回一个跟服务端交互的IBinder对象。这个绑定是异步的,bindService()方法立即返回,并且不给客户端返回IBinder对象。要接收IBinder对象,客户端必须创建一个ServiceConnection类的实例,并且把这个实例传递给bin

2012-02-28 19:55:50 4748 2

翻译 Android 绑定类型服务---使用信使(Messenger)

如果需要服务跟远程进程通信,那么就可以使用Messenger对象来给服务提供接口。这种技术允许你在不使用AIDL的情况下执行进程间通信(IPC)。以下是信使(Messenger)对象的使用概要:1.  服务端实现的一个处理器(Handler接口),这个处理器针对每次来自客户端的调用接收一次回调;2.  这个处理器被用于创建一个信使对象(Messager)(这个信使对象要引用这个处理器)

2012-02-28 19:53:14 2469 1

翻译 Android 绑定类型服务---继承Binder类

如果你只在应用程序的局部使用服务,并且不需要跨进程工作,那么你能够实现自己的Binder类,用它直接给你的客户端提供访问服务中公共方法的能力。注意:通常,客户端和服务端只是在同一个应用和进程中工作,例如,对于一个要良好工作的播放音乐的应用程序,就需要把在后台工作的播放音乐的服务与应用自己的一个Activity绑定。以下是建立绑定类型服务的步骤:1. 在服务中,使用以下方法之一创建Bin

2012-02-28 19:49:55 2373 1

翻译 Android 绑定类型服务---创建绑定类型的服务

创建具有绑定能力的服务时,必须提供一个IBinder对象,它用于给客户端提供与服务端进行交互的编程接口。有三种方法能够定义这个接口:1. 继承Binder类如果你的服务是你的应用程序的私有服务,并且跟客户端运行在同一个进程中,那么就应该通过继承Binder类来创建你的接口,并且佛从onBind()方法中返回这个接口的一个实例。客户端接收这个Binder对象,并且能够使用这个对象直接访问Bi

2012-02-28 19:45:29 1574

翻译 Android 绑定类型服务---简介

绑定类型的服务是在客户-服务接口中的服务端。绑定类型服务允许组件(如Activity)绑定服务、发送请求、接收响应、以及执行进程间通信(IPC)。一个典型的绑定类型的服务只跟它所服务的那个应用程序组件同时存在,并且不在后台无限期的运行。这份文档向你展示了如何创建绑定类型的服务,包括怎样跟其他应用程序组件绑定。但是,关于服务的基本信息你还是应该参照“Android Service”这份文档,如怎

2012-02-28 19:43:54 1486

转载 人生的成熟,从不抱怨开始

遇见他,是在一个饭局上。  一落座,他就喋喋不休地抱怨开来;怨公司不好,拼死拼活一个月,拿到手里工资没多少;怨上司不公,谁擅长拍马屁谁拿到的项目就油水丰厚;怨同事不善,成天勾心斗角明争暗斗......终于,在他暂停抱怨的间隙,我小心翼翼地问了一句;既然工作如此不称心,为什么不跳槽?他一愣,奇怪地看了我一眼,似乎在看一个外星人。"跳槽?现在经济这么不景气,往哪里跳?"这下我算明白了,原来他的

2012-02-27 19:37:02 1522 1

转载 每天做好一件事

有一位画家,举办过十几次个人画展。开始无论参观者多少,脸上总是挂着微笑。有一次,我问他:"你为什么每天都这么开心呢?"他给我讲一件事情:小时候,我兴趣非常广泛,也很要强。画画,拉手风琴,游泳,打篮球,必须都得第一才行。这当然是不可能的。于是,我心灰意冷,学习成绩一落千丈。 父亲知道后,找来一个漏斗和一捧玉米种子。让我双手放在漏斗下面接着,然后捡起一粒种子投到漏斗里面,种子便顺着漏斗滑到了我的手

2012-02-27 19:32:35 1215

转载 在春天起跑

有人说春天是一片绿叶,点缀的是希望的田野;有人说春天是一朵蓓蕾,绽放的是一种美丽的心情;还有人说春天是一泓清泉,滋润的是久渴的心田。朋友,当你睁开眼睛,满眼都是崭新的绿色,满眼都是笑声清脆的孩子时,一个世界,为了灿烂的梦想而敞开了胸怀。  春天是一个播种希望的季节,它蕴含着激情,充满理想。在这个让人激动,让人期待,让人浮想联翩的季节里,或有精致如斯的小秘密破壳而出,或有宏伟壮丽的大手笔横空出世

2012-02-27 19:31:27 1162

翻译 Android Service---管理服务的生命周期

服务的生命周期跟Activity的生命周期类似。但是生命周期甚至比你关注服务如何创建和销毁更重要,因为服务能够在用户不知情的情况下在后台运行。服务的生命周期---从创建到销毁---可以被分为以下两个路径:1.  启动类型的服务:一个组件调用startService()方法创建服务,然后服务无限期的运行,并且必须通过调用stopSelf()方法来终止自己。其他组件也能够通过调用stopS

2012-02-27 19:07:13 3223

翻译 Android Service---在前台运行服务

前台服务是哪些被认为用户知道的并且在内存低的时候不允许系统杀死的服务。前台服务必须给状态栏提供一个通知,他被放到了“正在进行中(Ongoing)”标题之下,这就意味着直到这个服务被终止或从前台删除通知才能被解除。例如,一个播放音乐的音乐播放器服务应该被设置在前台运行,因为用户明确的知道它们的操作。状态栏中的通知可能指明了当前的歌曲,并且用户启动一个跟这个音乐播放器交互的Activity。要

2012-02-27 19:03:24 17458 4

翻译 Android Service---给用户发送通知

服务一旦运行,就能够使用广播通知(Toast Notifications)或状态栏通知(Status Bar Notifications)来通知用户。广播通知是一个在当前窗口表面短暂显示的一个消息,而状态栏消息会在状态栏中提供一个带有消息的图标,用户能够选择这个图标来启动一个动作(如启动一个Activity)。通常,状态栏通知是用来告知后台任务完成的最好的技术(如文件下载完成),并且用户能

2012-02-27 19:02:29 4492

翻译 Android Service---创建绑定类型服务

绑定类型的服务允许应用程序组件通过调用bindService()方法与服务创建一个长期的关联(通常不允许组件通过调用startService()方法来启动它)。在你想要Activity以及应用程序中的其他组件跟服务进行交互时,或者要把应用程序中的某些功能通过进程间通信(IPC)暴露给其他应用程序时,就需要创建一个绑定类型的服务。要创建绑定类型的服务,你必须实现返回IBinder对象的onB

2012-02-27 19:01:49 1723

翻译 Android Service---终止服务

被启动类型的服务必须管理它自己的生命周期。也就是说除非系统要回收系统内存,否则系统不会终止或销毁这个服务,在onStartCommand()方法返回后,这个服务会继续运行。因此而这种类型的服务必须通过调用stopSelf()方法或另一个组件通过调用stopService()方法才能终止。一旦用stopSelf()方法或stopService()方法请求终止服务,那么系统一有可能就会销毁这个服务

2012-02-27 19:01:00 10031

翻译 Android Service---启动服务

你能够通过把一个Intent对象(指定要启动的服务)传递给StartService()方法,从一个Activity或其他的应用程序组件启动服务。Android系统调用服务的onStartCommand()方法,并且给它传递Intent对象(你不应该直接调用onStartCommand()方法)例如,一个Activity能够使用带有明确的Intent对象的startService()方法来启动一

2012-02-27 19:00:04 2425

翻译 Android Service---继承Service类

继承IntentService类来实现一个被启动类型的服务很简单,但是如果你需要服务执行多线程(而不是通过工作队列来处理启动请求),那么你就要继承Service类来处理每个Intent。为便于比较,下面例子中,Service类的实现代码执行了与之前“继承IntentService类”一节中的例子相同的工作,也就是说,对于每个启动请求,它都会使用一个工作线程来执行工作,并且每次只处理一个请求。

2012-02-27 18:59:20 2482

翻译 Android Service---继承IntentService类

因为大多被启动类型的服务不需要同时处理多个请求(这实际是一个危险的多线程场景),因此使用IntentService类来实现自己的服务可能是最好的。IntentService类执行以下操作:1.  创建一个独立与应用程序主线程的默认工作线程,执行所有的给onStartCommand()方法Intent的处理;2.  创建一个工作队列,以便每次只给你的onHandleIntent()方法实

2012-02-26 10:07:14 2945

翻译 Android Service---创建一个被启动类型的服务

一个启动类型的服务是另一个组件通过调用startService()方法,产生一个调用服务的onStartCommand()方法而启动的服务。当一个服务被启动时,它有一个独立与启动它的组件的生命周期,并且这个服务能够无限期的在后台运行,即使启动它的组件被销毁了。因此这个服务应该在工作结束时通过调用stopSelf()方法来终止自己,或者另一个组件通过调用stopService()方法也能终止这个

2012-02-26 10:03:15 1836

翻译 Android Service---在清单中声明一个服务

像Activity(和其他的组件)一样,所有的服务都必须在应用程序的清单文件中声明。要声明服务就要给元素添加一个子元素,例如:  ...              ...  在元素中还包括了一些其他的属性定义,如启动服务所需的许可和服务应该运行在哪个进程中。android:name属性是唯一必须的属性---它指定了这个服务的类名。一旦你发布了应用,就不应该改变这

2012-02-26 10:00:56 3888

翻译 Android Services---基础

要创建一个服务,你必须创建一个Service类(或一个既存的Service子类)的子类。在你的实现中,你需要重写一些处理服务生命周期关键特征的回调方法,并且给组件提供一种合适的绑定服务的机制。需要重写的重要的回调方法如下:onStartCommand()当一个组件通过调用startService()方法请求启动一个服务时,系统会调用这个服务的onStartCommand()方法。一旦这个方

2012-02-25 20:23:51 1853

翻译 Android Services---概要介绍

一个服务就是一个能够在后台执行长时操作的应用程序组件,并且不提供用户界面。一个应用程序组件能够启动一个服务,即使用户切换到另一个应用程序,这个服务也会继续在后台运行。另外,一个组件能够绑定一个跟它交互的服务,甚至是进程间通信(IPC)。例如,一个服务可以处理网络事务、播放音乐、执行文件I/O、或者跟内容提供器交互,所有这些都是在后台完成的。 一个Service基本上有两种形式:被启动(St

2012-02-25 20:21:42 1413

翻译 Android 任务和回退堆栈---启动任务

你能够通过用“android.intent.action.MAIN”和“android.intent.category.LAUNCHER”分别给Intent过滤器指定行为和类别,从而创建一个Activity作为一个任务的入口。例如:                            ...这种类型的Intent会让对应的Activity的图标和标签显示在应用程序

2012-02-25 08:02:38 2234 1

翻译 Android 任务和回退堆栈---清除回退堆栈

如果用户长时间的离开一个任务,那么系统会清除这个任务根Activity以外的所有Activity。当用户再次返回这个任务时,只有根Activity被存储。系统行为的这种方式是因为经过长时间以后,用户在返回这个任务之前可能已经放弃它们的作业,而开始了某些新的任务。你能够使用一些Activity属性来修改这种行为:1.  alwaysRetainTaskState如果这个属性在一个任务的根

2012-02-25 08:01:17 2712

翻译 Android 任务和回退堆栈---处理亲缘关系

亲缘关系是指Activity愿意属于哪个任务。默认,来自同一个应用程序的所有的Activity彼此有一个亲缘关系。因此,默认情况下在同一个应用程序中的所有Activity都应该属于同一个任务。但是,你能够给一个Activity修改默认的亲缘关系。Activity被定义在不同的应用程序中能够共享一个亲缘关系,或者Activity被定义在同一个应用程序中能够跟不同任务的亲缘关系进行关联。你能够使用

2012-02-25 07:59:54 1620

翻译 Android 任务和回退堆栈---默认启动模式

启动模式允许你定义一个新的Activity实例如何跟当前的任务进行关联。以下两种方法能够定义不同的启动模式:1.  使用清单文件     当在清单文件中声明一个Activity时,你能够指定这个Activity在启动时应该如何跟任务进行关联。2.  使用Intent标识    在调用startActivity()方法时,你能够在Intent中包含一个标识,用来声明这个新的Activ

2012-02-25 07:58:08 2578

翻译 Android 任务和回退堆栈---管理任务

Android通过把所有的已启动的Activity依次放到同一个后进先出的堆栈里来进行管理,对于大多数应用程序来说这种方法能够很好的工作,并且你不必担心Activity是如何跟任务关联的或者他们是如何存在回退堆栈中的。但是,你可能决定要打破这种通常的行为。或许你想要应用程序中的一个Activity在启动的时候开启一个新的任务(而不是放在当前的任务中);或者当你启动一个Activity时,你想使用之

2012-02-23 20:32:12 2603

翻译 Android 任务和回退堆栈---保存Activity状态

在Activity被终止时保留Activity的状态是系统的默认行为。这样,当用户返回到之前的Activity时,用户界面会显示它们离开时的样子。但是在Activity被销毁和重建的场景中应该主动的使用回调方法保留Activity的状态。当系统终止一个Activity时(如一个新的Activity启动或这个任务被转移到后台),如果需要回收系统内存,那么系统可能完全的销毁这个Activity。当

2012-02-22 19:49:58 2500 1

翻译 Android 任务和回退堆栈---概要介绍

一个应用程序通常包含了多个Activity,每个Activity都应该围绕一个用户能够执行的特定动作类型来进行设计,并且能够启动其他的Activity。例如,一个电子邮件的应用程序可能有一个用于显示新邮件列表的Activity。当用户选择一个电子邮件时,就会有一个用于打开电子邮件的新的Activity。一个Activity甚至能够启动设备上其他应用程序中存在的Activity。例如,如果你的应

2012-02-22 19:48:18 2421

翻译 Android 装载器---例子

这个例子是在Fragment中显示一个ListView的完整实现,ListView中包含针对通讯录内容提供器的查询结果。它使用一个CursorLoader来管理基于内容提供器的查询。因为这个应用程序访问了用户的通讯录,因此它的清单文件中必须包含READ_CONTACTS许可。public static class CursorLoaderListFragment extends ListF

2012-02-21 18:51:54 1807

翻译 Android 装载器---使用LoaderManager的回调方法

LoaderManager.LoaderCallbacks是一个让客户与LoadManager进行交互的回调接口。装载器,尤其是CursorLoader装载器,被期望用来保存被终止后的数据,这样就允许应用程序在Activity之间或Fragment的onStop()和onStart()方法之间进行切换时保存数据,以便在用户返回应用程序时,它们不需要因数据重载而等待。使用LoaderManage

2012-02-21 18:50:00 7684

翻译 Android 装载器---重启装载器

在使用initLoader()方法时,如果指定ID的装载器存在,就使用这个既存的装载器,否则会创建一个新的。但是有些时候你会想要废弃旧的数据并重启装载器。你可以使用restartLoader()方法来废弃旧的数据。例如,SearchView.OnQueryTextListener的实现就会在用户查询改变时重启装载器。装载器需要重启以便能够使用修正后的搜索过滤器来进行新的查询,如:publi

2012-02-21 18:47:53 1795

翻译 Android 装载器---启动装载器

LoaderManager管理Activity或Fragment内部的一个或多个装载器实例,每个Activity或Fragment只有一个LoaderManager对象。通常在Activity的onCreate()方法或Fragment的onActivityCreated()内初始化一个装载器,如:// Prepare the loader.  Either re-connect with

2012-02-21 18:46:44 2073

翻译 Android 装载器---在应用程序中使用装载器

这一节描述了在Android应用程序中如何使用装载器,使用装载器的应用程序通常包括以下内容:1.  一个Activity或Fragment;2.  一个LoaderManager实例;3.  一个用于加载通过ContentProvider保存的数据的CursorLoader对象,也可以是你自己实现的用于加载其他类型数据的Loader或AsyncTaskLoader类的子类。4.

2012-02-20 19:45:12 1729

Android---解析XML数据

Android解析XML数据的方法,该示例详细说明了如何使用Android的Xml.newPullParser()来解析XML数据

2013-11-13

Android---屏幕滑动效果示例

Android---使用ViewPager实现屏幕滑动效果的实现

2013-09-04

Android位图处理示例代码

在UI线程之外处理位图,防止UI线程阻塞,给用户良好的UI体验

2013-07-04

Android工程源码---ActivityLifecycle

Android的Activity生存周期回调方法演示代码

2012-12-11

Android工程源码---MyFirstApp

使用Intent对象来启动另一个Activity的方法

2012-12-06

iPhone开发秘籍第二版(英文)

building Applications with the iPhone3.0 SDK

2012-02-29

C语言的XML编程

Libxml2是一个C语言的XML程序库,可以简单方便的提供对XML文档的各种操作,并且支持XPATH查询,以及部分的支持XSLT转换等功能。Libxml2的下载地址是http://xmlsoft.org/,完全版的库是开源的,并且带有例子程序和说明文档。最好将这个库先下载下来,因为这样可以查看其中的文档和例子。

2012-02-20

Vim用户手册中文版.pdf

Vim中文本手册,帮助我们快速适应Linux系统程序及shell编辑

2012-02-14

SVN参考手册

使用Subversion进行版本控制,针对Subversiong1.4

2012-02-13

GNU Make手册

Linux系统下C语言编制,需要完全掌握Make工具的使用及Make文件的编写方法,这样才能灵活的驾驭你的工程

2012-02-12

C程序设计_谭浩强.pdf

C语言教材---入门教材。 通过C语言的学习,掌握编程的基本知识。

2012-02-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除