You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Android分屏模式下视频应用Activity的生命周期状态咨询

嘿,这两个问题都是分屏模式下Activity生命周期的常见疑问,咱来一步步说清楚:

问题1:视频应用处于分屏模式时,其Activity的状态是什么?

分屏模式下Activity的状态得看它是否拥有用户焦点:

  • 如果这个视频应用的分屏窗口是当前用户正在交互的那个(比如用户正在点它的播放按钮),那么Activity处于 Resumed 状态,也就是正常的活跃交互状态,生命周期停留在onResume()之后。
  • 如果视频应用的分屏窗口只是可见,但用户正在操作另一个分屏应用(比如同时聊微信),那么这个视频Activity会处于 Started 状态(也可以理解为可见但失焦的状态),此时onPause()会被调用,但不会走到onStop(),因为Activity仍然在屏幕上可见。
问题2:负责视频播放的Activity处于可见但无法与用户交互状态时,对应的Activity生命周期状态是什么?

这种场景下,Activity对应的生命周期状态是 Started(官方也常描述为"可见但非活跃"状态)。
具体来说:

  • 系统会调用Activity的onPause()方法,因为它失去了用户交互焦点,但不会调用onStop(),因为Activity还在分屏中保持可见。
  • 对于视频播放场景,你要注意在onPause()里不要直接暂停播放(除非业务需求),因为用户只是暂时切换到另一个分屏应用,可能还想继续听/看视频。反而应该在这里处理焦点丢失的逻辑,比如隐藏播放控制栏,保持视频后台播放。

内容的提问来源于stack exchange,提问作者MRazian

火山引擎 最新活动