上一页 1 ··· 18 19 20 21 22 23 24 25 26 ··· 51 下一页
摘要: 一个Service是没有界面且能长时间运行于后台的应用组件.其它应用的组件可以启动一个服务运行于后台,即使用户切换到另一个应用也会继续运行.另外,一个组件可以绑定到一个service来进行交互,即使这个交互是进程间通讯也没问题.例如,一个aservice可能处理网络事物,播放音乐,执行文件I/O,或与一个内容提供者交互,所有这些都在后台进行.一个service本质上可有两种表现形式:Started 一个service在某个应用组件(比如一个activity)调用startService()时就处于"started"状态(注意,可能已经启动了).一旦运行后,service可以 阅读全文
posted @ 2012-02-29 19:54 移动应用开发 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 内容URI是在提供器中标识数据统一资源标识。内容的统一资源标识包括完整的提供器的符号名和所指向的一个表名。当你调用一个客户端方法来访问提供器中的一个表时,这个表的内容的统一资源标识就应该是参数之一。在前面的代码行中,常量CONTENT_URI包含了用户字典的“words”表的统一资源标识。ContentResolver对象分析出URI的授权,并且使用这个授权跟已知的系统表的授权进行比较来找到内容的提供者,然后ContentResolver对象就能够把查询参数分发给正确的提供者。ContentProvider对象是内容统一资源标识的路径部分来选择要访问的表。通常提供器对每个表都会公开一个路径。在 阅读全文
posted @ 2012-02-29 19:34 移动应用开发 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 应用程序使用ContentResolver客户端对象访问来自客户端的数据。这个对象有一些与提供器中相同的命名的方法,提供器是ContentProvider的一个具体的子类的实例。ContentResolver对象的方法提供了基本的“CRUD”(创建、获取、更新和删除)持久化保存的功能。在客户端应用程序的进程中的ContentResolver对象和提供器自己应用中的ContentProvider对象自动的处理进程间通信。ContentProvider对象也以表的形式在数据资源库和数据的外部表现之间扮演着抽象层的角色。注意:要访问一个提供器,通常需要在清单文件中要请求一个特殊的许可。更详细的描述请 阅读全文
posted @ 2012-02-29 19:32 移动应用开发 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 内容提供器管理着对数据的核心资源库的访问。并且提供器是Android应用程序的一部分,它经常为了跟数据协同工作而提供自己的UI。但是内容提供器的主要目的是提供其他应用程序使用,它们使用提供器的客户端对象访问提供器。提供器和提供器客户端一起给处理进程间通信的数据和安全数据访问提供了一个一致的、标准的接口。这个主题主要介绍以下基础内容:1.内容提供器是如何工作的;2.使用API从内容提供器中获取数据;3.使用API来插入、更新、删除内容提供器中的数据;4.与提供器协同工作的其他API功能。概述内容提供器用类似关系数据库表的形式用一个或多个表给外部应用程序呈现数据。一行代表了提供器收集的某些数据类型 阅读全文
posted @ 2012-02-29 19:31 移动应用开发 阅读(327) 评论(0) 推荐(0) 编辑
摘要: 内容提供器管理结构化的数据集的访问。它们封装数据、提供定义数据安全的机制。内容提供器是用运行在另一个进程中的代码连接另一个进程中的数据的标准接口。当你想要访问内容提供器中的数据时,使用应用程序的Context中的ContentResolver对象作为客户端跟提供器进行通信。跟ContentResolver对象进行通信的提供器对象是ContentProvider实现类的一个实例。这个提供器对象接收来自客户端的请求,执行请求动作,并返回结果。如果你不想跟其他应用程序共享数据,就不需要开发自己的提供器。但是,如果你要在自己的应用程序中提供定制化的搜索建议就需要自己的提供器,如果你想要把复杂的数据或文 阅读全文
posted @ 2012-02-29 19:29 移动应用开发 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 当服务从所有的客户端解除绑定时,Android系统会销毁它(除非它还用onStartCommand()方法被启动了)。因此如果是纯粹的绑定类型的服务,你不需要管理服务的生命周期---Android系统会基于是否有客户端绑定了这个服务来管理它。但是,你选择实现了onStartCommand()回调方法,那么你就必须明确的终止这个服务,因为系统被认为是启动类型的。这样服务就会一直运行到服务用stopSelf()方法或其他组件调用stopService()方法来终止自己,而不管是否有还有客户端绑定了它。另外,如果你的服务是启动类型的并且也接收绑定,那么当系统调用onUnbind()方法时,如果你想要 阅读全文
posted @ 2012-02-29 19:25 移动应用开发 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 以下是关于绑定的重要注意事项:1. 你应该始终捕获DeadObjectException异常,当连接被中断时这个异常被抛出。这是由远程方法抛出的唯一异常。2.对象的引用计数是跨进程的。3.通常绑定和解除绑定应该成对使用,而且要跟客户端的生命周期的启动和退出时刻匹配。例如:如果你只需要在Activity可见的时候跟服务交互,那么就应该在onStart()期间绑定在onStop()期间解绑;如果你想要Activity在终止的时候也能在后台接收响应事件,那么可以在onCreate()期间绑定,在onDestroy()期间解绑。这就意味着你的Activity需要在Activity的整个生命时都要使用这 阅读全文
posted @ 2012-02-29 19:23 移动应用开发 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 大唐贞观年间,在长安城西的一家磨坊里有一匹瘦马和一头黑驴。它们是好朋友,经常在一起谈心。马负责为主人拉车运货,驴子的工作是在屋里推磨。贞观四年,这匹马被玄奘大师选中,接受了一项艰巨的任务,与大师一起动身去天竺国大雷音寺取三藏真经。13年后,这匹马跟着大师经历了千辛万苦,驮着佛经回到长安。大师受到重赏,而马也被人们精心打扮一番与大师形影不离,跟随大师去全国各地讲经。不久,朋友见面,老马跟驴子谈起了旅途的经历:浩瀚无边的沙漠、高入云霄的峻岭、火焰山的热浪、流沙河的黑水……驴子听了神话般的故事,大为惊异。驴子惊叹说:"马大哥,你的知识多么丰富呀!那么遥远的路程,那种神奇的景色,我连想都不敢 阅读全文
posted @ 2012-02-28 20:02 移动应用开发 阅读(165) 评论(0) 推荐(0) 编辑
摘要: (一)关于压力有一位讲师正在给学生们上课,大家都认真地听着。寂静的教室里传出一个浑厚的声音:"各位认为这杯水有多重?"说着,讲师拿起一杯水。有人说二百克,也有人说三百克。"是的,它只有二百克。那么,你们可以将这杯水端在手中多久?"讲师又问。很多人都笑了:二百克而已,拿多久又会怎么样!讲师没有笑,他接着说:"拿一分钟,各位一定觉得没问题;拿一个小时,可能觉得手酸;拿一天呢?一个星期呢?那可能得叫救护车了。"大家又笑了,不过这回是赞同的笑。讲师继续说道:"其实这杯水的重量很轻,但是你拿得越久,就觉得越沉重。这如同把压力放在身上, 阅读全文
posted @ 2012-02-28 20:00 移动应用开发 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 应用程序组件(客户端)通过调用bindService()方法能够绑定服务,然后Android系统会调用服务的onBind()回调方法,这个方法会返回一个跟服务端交互的IBinder对象。这个绑定是异步的,bindService()方法立即返回,并且不给客户端返回IBinder对象。要接收IBinder对象,客户端必须创建一个ServiceConnection类的实例,并且把这个实例传递给bindService()方法。ServiceConnection对象包含了一个系统调用的传递IBinder对象的回调方法。注意:只有Activity、Service、和内容提供器(content provid 阅读全文
posted @ 2012-02-28 19:55 移动应用开发 阅读(248) 评论(0) 推荐(0) 编辑
上一页 1 ··· 18 19 20 21 22 23 24 25 26 ··· 51 下一页