获取当前Activity的几种方式

 我来答
科创17
2022-07-13 · TA获得超过5920个赞
知道小有建树答主
回答量:2846
采纳率:100%
帮助的人:177万
展开全部

1. 通过RunningTaskInfo的topActivity获取当前Activity实例。通过该种方式获取的Activity,只能保证其已经执行了Activity.onCreate方法,不能保证是否执行了Activity.onResume方法。该方法在api 21以后已经被禁,使用需谨慎。

2. 通过Android 4.0之后提供的ActivityLifecycleCallbacks接口监听当前的Activity实例,可以在onActivityCreated或者onActivityResumed当中获取到。建议在onActivityResumed当中去获取,同时最好以软引用或者弱引用的方式持有,防止OOM。(其中XxxApplication是你的工程Application)

3. 手写Activity管理栈,可以使用Stack或者List等存储已经执行了Activity.onCreate或者Activity.onResume方法的Activity,并相应在Activity.onPause或者Activity.onDestroy中移除。

4. 反射方式

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式