oschina的android源码分析学习(一)

本文是作者对oschina开源的Android源码的学习笔记,重点介绍了AppManager如何管理Activity。AppManager使用Stack来统一管理Activity,通过单例模式确保全局唯一。它提供了添加、获取、结束Activity等基本操作,避免了对系统API的过度封装。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前猴子是讨厌读别人的源码的,一是因为项目太大,一时半会吃不完。二是懒。近一段时间,加班非常频繁,究其原因,项目时间本来就紧,这是猴子所控制不了的。还有就是猴子技能有限,蓝不够用啊。于是想到进阶。oschina的部分源码是开源了的,这是一份不错的源码,技术复杂度并不是很高,有很多值得学习借鉴的地方。猴子要在oschina的android源码分析学习系列中,记录一些学习心得。

先说说oschina对activity的管理。

oschina对activity的管理是采用了一个AppManger的自定义类来实现的。这个类持有一个Stack<Activity>,由于对于activity的操作基本都是对栈顶进行的,所以采用Stack来统一管理最合适不过了。

由于AppManger管理着应用的所有Activity,所以,AppManger这个对象必须保证在整个应用唯一,别无选择的将这个对象设计成了单例。

AppManger提供的方法:

添加acticity到Stack,每个 activity启动的时候,都会掉用此方法来注册一下。

获取当前activity

结束当前activity

结束指定activity

结束所有activity

获取指定activity,如果指定activity没有实例化过,则返回null

退出应用程序


这个对象提供的方法并不多,猴子以为,activity作为系统组件之一,而且是最常用的组建,系统已经为activity提供了丰富的API供开发者掉用,包括activity的生命周期以及各种回调方法。所以在AppManger这里就不需要封装太多的方法了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值