上一页 1 ··· 17 18 19 20 21 22 23 24 25 ··· 52 下一页
摘要: 内容提供器管理着对数据的核心资源库的访问。并且提供器是Android应用程序的一部分,它经常为了跟数据协同工作而提供自己的UI。但是内容提供器的主要目的是提供其他应用程序使用,它们使用提供器的客户端对象访问提供器。提供器和提供器客户端一起给处理进程间通信的数据和安全数据访问提供了一个一致的、标准的接口。这个主题主要介绍以下基础内容:1.内容提供器是如何工作的;2.使用API从内容提供器中获取数据;3.使用API来插入、更新、删除内容提供器中的数据;4.与提供器协同工作的其他API功能。概述内容提供器用类似关系数据库表的形式用一个或多个表给外部应用程序呈现数据。一行代表了提供器收集的某些数据类型 阅读全文
posted @ 2012-02-29 19:31 andriod2012 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 内容提供器管理结构化的数据集的访问。它们封装数据、提供定义数据安全的机制。内容提供器是用运行在另一个进程中的代码连接另一个进程中的数据的标准接口。当你想要访问内容提供器中的数据时,使用应用程序的Context中的ContentResolver对象作为客户端跟提供器进行通信。跟ContentResolver对象进行通信的提供器对象是ContentProvider实现类的一个实例。这个提供器对象接收来自客户端的请求,执行请求动作,并返回结果。如果你不想跟其他应用程序共享数据,就不需要开发自己的提供器。但是,如果你要在自己的应用程序中提供定制化的搜索建议就需要自己的提供器,如果你想要把复杂的数据或文 阅读全文
posted @ 2012-02-29 19:29 andriod2012 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 当服务从所有的客户端解除绑定时,Android系统会销毁它(除非它还用onStartCommand()方法被启动了)。因此如果是纯粹的绑定类型的服务,你不需要管理服务的生命周期---Android系统会基于是否有客户端绑定了这个服务来管理它。但是,你选择实现了onStartCommand()回调方法,那么你就必须明确的终止这个服务,因为系统被认为是启动类型的。这样服务就会一直运行到服务用stopSelf()方法或其他组件调用stopService()方法来终止自己,而不管是否有还有客户端绑定了它。另外,如果你的服务是启动类型的并且也接收绑定,那么当系统调用onUnbind()方法时,如果你想要 阅读全文
posted @ 2012-02-29 19:25 andriod2012 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 以下是关于绑定的重要注意事项:1. 你应该始终捕获DeadObjectException异常,当连接被中断时这个异常被抛出。这是由远程方法抛出的唯一异常。2.对象的引用计数是跨进程的。3.通常绑定和解除绑定应该成对使用,而且要跟客户端的生命周期的启动和退出时刻匹配。例如:如果你只需要在Activity可见的时候跟服务交互,那么就应该在onStart()期间绑定在onStop()期间解绑;如果你想要Activity在终止的时候也能在后台接收响应事件,那么可以在onCreate()期间绑定,在onDestroy()期间解绑。这就意味着你的Activity需要在Activity的整个生命时都要使用这 阅读全文
posted @ 2012-02-29 19:23 andriod2012 阅读(1120) 评论(0) 推荐(0) 编辑
摘要: 第一种显示通知的方法:/** * notification * * @param id */private void showNotification(){ RemoteViews views = new RemoteViews(getPackageName(), R.layout.statusbar); views.setImageViewResource(R.id.icon, R.drawable.fm_icon); views.setTextViewText(R.id.fm_run, getString(R.string.fm_run)); Notification status = . 阅读全文
posted @ 2012-02-28 20:54 andriod2012 阅读(7709) 评论(0) 推荐(0) 编辑
摘要: 大唐贞观年间,在长安城西的一家磨坊里有一匹瘦马和一头黑驴。它们是好朋友,经常在一起谈心。马负责为主人拉车运货,驴子的工作是在屋里推磨。贞观四年,这匹马被玄奘大师选中,接受了一项艰巨的任务,与大师一起动身去天竺国大雷音寺取三藏真经。13年后,这匹马跟着大师经历了千辛万苦,驮着佛经回到长安。大师受到重赏,而马也被人们精心打扮一番与大师形影不离,跟随大师去全国各地讲经。不久,朋友见面,老马跟驴子谈起了旅途的经历:浩瀚无边的沙漠、高入云霄的峻岭、火焰山的热浪、流沙河的黑水……驴子听了神话般的故事,大为惊异。驴子惊叹说:"马大哥,你的知识多么丰富呀!那么遥远的路程,那种神奇的景色,我连想都不敢 阅读全文
posted @ 2012-02-28 20:02 andriod2012 阅读(239) 评论(0) 推荐(0) 编辑
摘要: (一)关于压力有一位讲师正在给学生们上课,大家都认真地听着。寂静的教室里传出一个浑厚的声音:"各位认为这杯水有多重?"说着,讲师拿起一杯水。有人说二百克,也有人说三百克。"是的,它只有二百克。那么,你们可以将这杯水端在手中多久?"讲师又问。很多人都笑了:二百克而已,拿多久又会怎么样!讲师没有笑,他接着说:"拿一分钟,各位一定觉得没问题;拿一个小时,可能觉得手酸;拿一天呢?一个星期呢?那可能得叫救护车了。"大家又笑了,不过这回是赞同的笑。讲师继续说道:"其实这杯水的重量很轻,但是你拿得越久,就觉得越沉重。这如同把压力放在身上, 阅读全文
posted @ 2012-02-28 20:00 andriod2012 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 应用程序组件(客户端)通过调用bindService()方法能够绑定服务,然后Android系统会调用服务的onBind()回调方法,这个方法会返回一个跟服务端交互的IBinder对象。这个绑定是异步的,bindService()方法立即返回,并且不给客户端返回IBinder对象。要接收IBinder对象,客户端必须创建一个ServiceConnection类的实例,并且把这个实例传递给bindService()方法。ServiceConnection对象包含了一个系统调用的传递IBinder对象的回调方法。注意:只有Activity、Service、和内容提供器(content provid 阅读全文
posted @ 2012-02-28 19:55 andriod2012 阅读(4055) 评论(0) 推荐(0) 编辑
摘要: 如果需要服务跟远程进程通信,那么就可以使用Messenger对象来给服务提供接口。这种技术允许你在不使用AIDL的情况下执行进程间通信(IPC)。以下是信使(Messenger)对象的使用概要:1.服务端实现的一个处理器(Handler接口),这个处理器针对每次来自客户端的调用接收一次回调;2.这个处理器被用于创建一个信使对象(Messager)(这个信使对象要引用这个处理器);3.信使对象创建一个创建一个服务端从onBind()方法中返回给客户端的IBinder对象;4.客户端使用这个IBinder对象来实例化这个信使对象(信使引用了服务端的处理器),客户端使用这个信使给服务端发送Messa 阅读全文
posted @ 2012-02-28 19:53 andriod2012 阅读(3669) 评论(0) 推荐(0) 编辑
摘要: 如果你只在应用程序的局部使用服务,并且不需要跨进程工作,那么你能够实现自己的Binder类,用它直接给你的客户端提供访问服务中公共方法的能力。注意:通常,客户端和服务端只是在同一个应用和进程中工作,例如,对于一个要良好工作的播放音乐的应用程序,就需要把在后台工作的播放音乐的服务与应用自己的一个Activity绑定。以下是建立绑定类型服务的步骤:1.在服务中,使用以下方法之一创建Binder实例: A.包含客户端能够调用的公共方法; B.返回当前服务的实例,它有客户端能够调用的公共方法; C.或者返回一个带有客户端能够调用的公共方法的被服务持有的另一个类。2. 从onBind()回调方法中返回这 阅读全文
posted @ 2012-02-28 19:49 andriod2012 阅读(2480) 评论(0) 推荐(0) 编辑
上一页 1 ··· 17 18 19 20 21 22 23 24 25 ··· 52 下一页