Android 艺术的探索(一)

20 篇文章 0 订阅

从最近开始打算记录一波关于这本书的感受
搞起来!!!!

资源内存不足导致低优先级的Activity被杀死

	优先级基本分为一下三种
	1、前台还在显示的Acticity——正在和用户进行交互的Activity优先级最高。
	2、可见但是非在前台显示的Activity——比如Activity中弹出一个对话框,
			导致Activity可见但是位于后台无法和用户进行交互。
	3、后台的Activity——已经被暂停的Activity,比如执行了onStop,】
	   优先级最低

当系统内存不够的时候。系统就会按照上述的优先级去杀死目标Activity所在的进程。并且通过onSaveInstanceSate和onRestoreInstanceSate来存储和恢复数据。如果一个进程中没有四大组件在运行,那么这个进程很快就会被系统杀死。所以一些后台工作不适合脱离四大组件独自运行在后台。较好的方法就是将后台工作放到service中。

Activity旋转时,可以不重新创建嘛

如果我们在旋转时不想重新创建可以添加configChanges属性添加orientation
这个值

android:configChanges = "orientation"

Activity四种启动模式

	在任务栈中是一种后进先出的一种栈结构

	1、standard  标准模式
		这是一种系统的默认模式,每次创建都会去创建相对应的Activity实例,
		它的生命周期呢,onCreate->onStart->onResume都会被调用
		
	2、singleTop 栈顶复用模式
		这种模式,如果新的Activity已经位于栈顶,那么Activity不会被重新创建,
		同时会调用onNewIntent方法,通过这个方法参数,可以获得当前请求的消息
		需要注意的是这个Activity生命周期不会走onCreate和onStart

	3、singleTask 栈内复用模式,这是一种单实例模式
		只要Activity在栈中存在,那么就不会去创建实例。
		比如Activity A,系统会先找A想在的任务栈,如果不存在就会创建一个任务栈,
		如果想在的任务栈存在,就会去查找有没有A的实例,如果有就会把上面的实例清
		空,并且调用onNewIntent,生命周期和singleTop一致,如果实例不存在。就会创
		建一个实例。

   	4、singleInstance  单实例模式
   		比如Activity A是singleInstancemm模式,当A启动后,系统会为它创建一个新的
   		任务栈,A独自在这个新的任务栈中,由于栈内复用的特性,后续的请求均不会
   		创建新的Activity,除非这个独特的任务栈被系统销毁了。

后续还会继续更新

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值