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

来源:互联网 发布:java项目开发实录 编辑:程序博客网 时间:2024/05/15 11:14


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代表要操作的数据表的绝对路径。
通配符: “ * ”代表任意长度的任意字符, “ # ”代表任意长度的数字。

0 0
原创粉丝点击