一.Activity
1.生命周期
在Activity3种状态切换的时候会自动执行一些生命周期方法
生命周期方法共有7个: onCreate, onStart, onResume, onPause, onStop, onDestroy, onRestart
2.横竖屏切换
在默认状态下, Activity横竖屏切换的时候是会摧毁Activity重新创建的, 目的是为了支持屏幕适配(横竖屏显示不同layout)
如果需要保存和恢复一些数据, 可以通过onSaveInstanceState()和onRestoreInstanceState()方法实现
如果不希望摧毁Activity, 可以在清单文件中配置<activity>标签的configChanges, 当配置了这个属性之后, 方向改变时只执行onConfigurationChanged()方法
3.启动模式
standard:
每次都创建一个新的
singleTop:
如果在栈顶就不创建, 如果不存在就创建, 如果存在且不在栈顶也创建
singleTask:
如果在栈顶就不创建, 如果不存在就创建, 如果存在且不在栈顶那就销毁上面的其他Activity
singleInstance: 如果在栈顶就不创建, 如果不存在就创建, 如果存在且不在栈顶就把这个Activity移动到栈顶
二.BroadcastReceiver
1.定义广播接收者
定义类继承BroadcastReceiver, 重写onReceive()方法
在清单文件中注册<receiver>节点, 声明<intent-filter>节点, 通过<action>节点指定广播类型
当收到指定广播的时候, 自动执行onReceive()方法
如果需要, 在<receiver>标签中可以指定发送端的权限
2.发送广播
无序广播:
没有顺序, 不能使用结果数据, 不能中断
sendBroadcast(intent) 可以指定接收者的权限
有序广播:
有顺序, 可以通过priority控制, 可以使用结果数据, 可以中断
sendOrderedBroadcast() 可以指定权限, 指定一个用来接收结果的接收者, 指定Handler, int, String, Bundle
abortBroadcast() 中断广播, 如果在某个接收者中调用, 那么优先级更低的其他接收者就不能收到广播了, 除非在发送时指定的那个resultReceiver
3.传递数据
无论有序广播还是无序广播, 都可以在Intent中putExtra()
然后在接收者的onReceive()方法的形参Intent中获取数据, 无法修改