碎片Fragment是一种可以嵌入在活动当中的ui片段。使程序更加合理和充分的使用大屏幕的空间。在平板上使用得广泛。
在一个网络范围内,最大的ip地址是保留作为广播地址来用的,如果某个网络的ip地址是192.168.0.xxx,子网掩码是255.255.255.0,那个广播地址就是192.168.0.255.
广播数据包会发送到同一网络的所有端口。即该网络中的每一台主机都会收到这个广播。
为了方便系统级别的消息通知,安卓引入了广播消息机制。
安卓中的每个应用程序可以对自己感兴趣的广播进行注册,这样程序就只会收到自己所关心的广播内容。广播可能来源于系统,也可以来自于其他的应用程序。安卓提供一套完整的api允许应用程序自由的接受和发送广播。发送的方法借助于Intent,接受的方法需要用到广播接收器Broadcast Reciever.
广播的类型:标准广播,时序广播。
标准广播Normal broadcasts。完全异步执行的广播。在广播发出以后,所有的广播接收器都会接收到,广播效率高,但是无法被截断。
有序广播Ordered
broadcasts。同步执行的广播。在广播发出以后,同一时刻只有一个广播接收器接收到,进行逻辑处理完以后,广播才可以继续传递。广播接收器有相应的先后的顺序,优先级别高的才可以接受到,前面的广播接收器可以截断正在传播的广播。
安卓系统内置很多的系统广播,我们可以在应用程序中监听这些广播来得到系统的状态信息。比如开机完成后发送一条广播,电池电量变化发送广播,时间或者时区发生变化也会发送广播。如果想要接受到这些广播就需要使用广播接收器。
广播接收器可以自由的对自己感兴趣的广播进行注册,注册广播的方式有两种,一种是动态注册,即在代码中注册,二是在androidmanifest.xml中注册,为静态注册。
创建广播接收器的方法:集成BroadcastReciever,并且重写父类的onRecieve()方法,当有广播的时候onRecieve方法就会被执行,具体的逻辑可以放在onRecieve里面。但是不要再onReceive()方法中添加太多逻辑以及耗时操作。在广播接收器中不允许开启线程,广播接收器更多的是扮演一种打开程序其他组件的角色,比如创建状态栏通知,启动服务等。
动态注册的时候注意取消注册。
动态注册可以自由的控制注册和注销,灵活,但是必须在程序启动后才能接受到广播,因为注册的逻辑是放在onCreate中。当程序没有启动的是就可以接受到广播需要使用静态注册。
安卓为了保证应用程序的安全性,当程序需要访问系统的关键的信息需要在配置文件中声明权限,否则程序直接崩溃。在AdroidManifest.xml中添加权限。
广播是可以跨进程的通信方式。