Android四大组件:ContentProvider Activity Service BroadcastReceiver
ContentProvider :继承ContentProvider 并覆盖相应的insert,delete,update,query方法,这里方法里面用拼接的数据库查询语句(其实就是省略了重复的关键字)的相应方法比较方便。Content Provider的入口需要在AndroidManifest.xml中配置
<provider android:name=”MyContentProvider” android:authorities=”包名.类名(该类继承了ContentProvider” />
Uri:( 因为Uri代表了要操作的数据,所以我们很经常需要解析Uri,并从Uri中获取数据)
Uri uri = Uri.parse("content://com.changcheng.provider.contactprovider/contact")
在Content Provider中使用的查询字符串有别于标准的SQL查询。很多诸如select, add, delete, modify等操作我们都使用一种特殊的URI来进行,这种URI由3个部分组成, “content://”,以及 代表数据的路径,和一个可选的标识数据的ID。以下是一些示例URI:
content://media/internal/images 这个URI将返回设备上存储的所有图片
content://contacts/people/ 这个URI将返回设备上的所有联系人信息
content://contacts/people/45 这个URI返回单个结果(联系人信息中ID为45的联系人记录)
Acticity:生命周期:onCreate() ,onStart(), onResume() ,onPause() ,onStop() , (onStop()之后可能有onRestart() ),onDestory(),具体如图:
Android系统相当于servlet容器(实现一个自己的servlet,需要继承相应的基类,重写它的方法,这些方法会在合适的时间被servlet容器调用。其实android中的Activity运行机制跟servlet有些相似之处),Activity相当于一个servlet,我们的Activity处在这个容器中,一切创建实例、初始化、销毁实例等过程都是容器来调用的,这也就是所谓的“Don't call me, I'll call you.”机制。
Activity的激活通过创建Intent意图再 激活,又分为显示激活setActivity(intent)和隐式激活(setXxx(根据AndroidManifest中Intent-Filter进行设置))。
多个Activity的切换通过(Intent意图实现),类比网页切换通过Servlet中的request.
Intent 还可以进行不同Activityde数据传递:
(从前往后传)前面那个Activity通过setXxx,后面那个Activity通过getIntent(),getXxx()获取。
( 从后往前传)前面那个Activity通过startActivityForResult()设置意图,后面那个Activity再创建Intent意图。
Activity的启动模式:Activity启动模式详解
Service :service 完全解析
BroadcastReceiver:BroadcastReceiver详解