首页 > 其他分享 >为什么 Activity.finish() 之后 10s 才 onDestroy ?

为什么 Activity.finish() 之后 10s 才 onDestroy ?

时间:2022-08-17 14:35:26浏览次数:42  
标签:finish onDestroy 调用 onStop Activity 10s

 

问题描述: 在A Activity启动B Activity,并结束A 页面,B页面在启动时进行大量的动画场景,源源不断的向主线程消息队列发送消息。A Activity的onPause正常执行,但是onStop与onDestory都延迟了10s才执行。为什么会出现这样的情况?

Activity 的 onStop/onDestroy 是依赖 IdleHandler 来回调的,正常情况下当主线程空闲时会调用。但是由于某些特殊场景下的问题,导致主线程迟迟无法空闲,onStop/onDestroy 也会迟迟得不到调用。但这并不意味着 Activity 永远得不到回收,系统提供了一个兜底机制,当 onResume 回调 10s 之后,如果仍然没有得到调用,会主动触发。

标签:finish,onDestroy,调用,onStop,Activity,10s
From: https://www.cnblogs.com/loaderman/p/16595068.html

相关文章