Android-Activity生命周期、广播接收者、服务

本文详细介绍了Android中Activity的三种状态及其生命周期的七个方法,包括创建、启动、暂停、恢复和停止等。此外,还讨论了不同启动模式的影响,并解释了如何在横竖屏切换和内存不足时保存和恢复数据。接着,文章讲解了广播接收者的创建、配置及发送无序和有序广播的过程,以及服务的概念和使用方式,包括启动、停止、绑定与解绑服务。最后,简要提到了跨应用的远程服务通信。
摘要由CSDN通过智能技术生成
一.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中获取数据, 无法修改
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值