四大组件之Activity

1.整体理解
Activity是一个负责与用户进行交互的组件。一个用户交互画面对应一个activity,可以通过setContentView(View v)方法来显示需要的控件。Activity是Context的子类,同时实现了window.callback接口(通过里面的dispatchTouchEvent方法可以分发事件)和keyevent.callback等,可以处理与窗体用户交互的事件。

2.生命周期如图
这里写图片描述

四种状态:参考我之前的文章,这里就不重复了

3.异常情况生命周期
情况一:资源相关的系统配置发生改变
比如:横竖屏切换时。会重新执行onCreate()方法,我们可以重写onSaveInstanceState()来保存当前Activity状态。在onRestoreInstanceState和onCreate方法方法中调用。、
解决方案:
1.在功能清单文件中加入申明,将横竖屏写死,通过screenOrientation = “landscape”
2.让系统的环境不再敏感横竖屏切换
Andorid:configChanges=”orientation|screenSize”
3.给EditText控件加上id,系统会自动保存然后恢复,或者在onSaveInstanceState保存,在重新创建的onCreate方法中恢复

总而言之,onSaveInstanceState的调用遵循一个重要原则,即当系统“未经你许可”时销毁你的activity,则onSaveInstanceState会被系统调用。

情况二:资源内存不足导致低优先级Activity被杀死
Activity优先级:
前台Activity——正在和用户交互的Activity,优先级最高。
可见但非前台Activity——Activity中弹出的对话框导致Activity可见但无法交互
后台Activity——已经被暂停的Activity,优先级最低
系统内存不足,会按照以上顺序杀死Activity,并通过onSaveInstanceState和onRestoreInstanceState这两个方法来存储和恢复数据

系统用Task Stack结构来存储管理启动的Activity对象

注:如果是少量数据,可以通过onSaveInstanceState()和onRestoreInstanceState()进行保存与恢复,如果是大量数据就要使用Fragment保持保存的对象。

4.Activity过渡动画的五种实现
Activity之间的数据传递,常见的有四种,Intent传递简单数据,Bundle传递数据包,传递值对象,获取Activity的返回参数这之间都用到了Intent,intent支持:实现Serializable接口,实现parcelable接口,charSequence,Bundle四种类型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值