您的位置:首页 > 移动开发 > Android开发

Android中四大组件(四大天王)

2016-07-21 14:51 260 查看
Activity

Activity的生命周期(其他博文中有详细)

注意点:被其他Activity覆盖当前Activity进入OnPasue(), 启动其他Acitivity当前Acitivity进入OnStop()。

Activity的启动模式(其他博文中有详细)

注意点:      Standard:只要新启动就会重新创建

             singleTop:在栈顶不会创建,不在栈顶就新创建

             singleTask:原栈中有,会销毁在此Activity之上的,没有则新建

             singleInstance:不管多少,只有一个存在于系统中。单独看做一个任务栈。

PS:

Fragment.嵌套在Activity中使用的,用于多屏幕展示。一个Activity中可以创建多个Fragment。

Service 

Service是Android中实现程序后台运行的解决方案。 

注意:虽然是“后台”,但是也是在UI线程中执行,不是在子线程中执行,不要在Service中做耗时操作。

IntentService中,复写onHandleIntengt函数,可以直接在该函数中完成耗时操作。

也可以前台显示:比如天气在通知栏中的显示。

Broadcast

广播可以有任意个接收着。

有三个基本要素:发送广播的Broadcast , 接收广播的BroadcastReceiver , 传递信息的 Intent 。

分为四类:普通广播,有序广播,本地广播,Sticky广播。

普通广播:传递信息的效率较高。但是,接收者不能将处理的结果传给下一个,并且无法终止Intent的传送,直到没有接收者为止。

有序广播:根据优先级来发送广播,通过属性这只可以完成。

本地广播:有时候并不需要把信息广播给所有应用,而只是进程内使用,这个时候用本地广播较好。

sticky广播:发送的广播会一直滞留,当有匹配此广播的接收器被注册,接收器就会接收到。 但是此广播只保留最后一条广播。

ContentProvider

对外共享数据,比如本应用与其他应用需要交互的时候,需要ContentProvider把应用中的数据共享给其他应用访问。

实际上是对SQliteOpenHelper的进一步封装,通过Uri映射来判断需要操作数据库中的哪一个表,并进行处理。

Uir代表要操作的数据表的绝对路径。

通配符: “ * ”代表任意长度的任意字符, “ # ”代表任意长度的数字。

Activity

Activity的生命周期(其他笔记中有)

注意点:被其他Activity覆盖当前Activity进入OnPasue(), 启动其他Acitivity当前Acitivity进入OnStop()。

Activity的启动模式(其他笔记中有)

注意点:      Standard:只要新启动就会重新创建

             singleTop:在栈顶不会创建,不在栈顶就新创建

             singleTask:原栈中有,会销毁在此Activity之上的,没有则新建

             singleInstance:不管多少,只有一个存在于系统中。单独看做一个任务栈。

PS:

Fragment.嵌套在Activity中使用的,用于多屏幕展示。一个Activity中可以创建多个Fragment。

Service 

Service是Android中实现程序后台运行的解决方案。 

注意:虽然是“后台”,但是也是在UI线程中执行,不是在子线程中执行,不要在Service中做耗时操作。

IntentService中,复写onHandleIntengt函数,可以直接在该函数中完成耗时操作。

也可以前台显示:比如天气在通知栏中的显示。

Broadcast

广播可以有任意个接收着。

有三个基本要素:发送广播的Broadcast , 接收广播的BroadcastReceiver , 传递信息的 Intent 。

分为四类:普通广播,有序广播,本地广播,Sticky广播。

普通广播:传递信息的效率较高。但是,接收者不能将处理的结果传给下一个,并且无法终止Intent的传送,直到没有接收者为止。

有序广播:根据优先级来发送广播,通过属性这只可以完成。

本地广播:有时候并不需要把信息广播给所有应用,而只是进程内使用,这个时候用本地广播较好。

sticky广播:发送的广播会一直滞留,当有匹配此广播的接收器被注册,接收器就会接收到。 但是此广播只保留最后一条广播。

ContentProvider

对外共享数据,比如本应用与其他应用需要交互的时候,需要ContentProvider把应用中的数据共享给其他应用访问。

实际上是对SQliteOpenHelper的进一步封装,通过Uri映射来判断需要操作数据库中的哪一个表,并进行处理。

Uir代表要操作的数据表的绝对路径。

通配符: “ * ”代表任意长度的任意字符, “ # ”代表任意长度的数字。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: