Android—Activity

Activity异常退出了怎么办(怎么保存数据)?

1、重写onSaveInstanceState和onRestoreInstanceState 两个方法
2、在onSaveInstanceState 用Bundle参数putString
3、在onRestoreInstanceState 用Bundle参数getString OK


Activity是如何显示视图的(源码|亮点)?

1、每一个Activity都有一个Phone Window对象,
2、Phone Window中mContentParent为空的时候,如果为空说明我们还没有DecorView,然后调用installDecor,之后我们的DecorView就准备好了
3、DecorView就准备好了mContentParent就指向了我们的ContentView,由于是新建的,我们的mContentParent中肯定没有子View,如果不是新建的,我们要先把mContentParent中的子View全部清干净。
4、接下来通过反射加载到我们传入的布局,接着下面会通过调用getCallBack得到一个CallBack对象cb,其实这个cb就是我们的Activity。
5、接着会调用Activity的onContentChanged方法,这个方法是一个空实现,然而View已经悄然显示了。


Activity的回退栈(或启动模式或launchMode)?

1、Standard 标准模式,没什么好说的每个Activity都进栈先进后出,是我们默认的模式。
2、SingleTop 栈顶复用模式,须要创建的Activity已经处于栈顶时,此时会直接复用栈顶的Activity,我们{占位符}项目中的APP内支付页面是使用的SingleTop,就怕支付页面会因为用户快速连点出现多个支付页的问题,我们{占位符}页面朋友圈也是使用的栈顶复用模式|我们{占位符}页面搜索也是使用的栈顶复用模式。
3、SingleTask 栈内复用模式,若须要创建的Activity已经处于栈中时,此时不会创建新的Activity,而是将存在栈中的Activity上面的其他Activity所有销毁,使它成为栈顶。我们{占位符}项目返回首页就是用的这种方式,不但省力还省内存。我们{占位符}页面大转盘也是使用SingleTask。
4、SingleInstance 单栈模式,会创建一个新的任务栈并且站内只有一个Activity并不常用,如果我们把一个Activity设置为singleInstance模式,你会发现它启动时会慢一些,切换效果不好,影响用户体验。它往往用于多个应用之间,例如一个电视launcher里的Activity,通过遥控器某个键在任何情况可以启动,这个Activity就可以设置为singleInstance模式,当在某应用中按键启动这个Activity,处理完后按返回键,就会回到之前启动它的应用,不影响用户体验。


你们{项目中}是如何管理Activity的(如何安全退出指定的Activity或如何退出所有Activity|小细节|小亮点)?

1、创建一个ActivityManager管理类,搞一个ArrayList
2、给每个Activity添加一个TAG
3、填加删除都通过ActivityManager里的ArrayList就OK了

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值