我正在尝试使我们的视频应用程序支持 Android N 多窗口模式。我发现活动生命周期在多窗口模式下变得混乱。现象是当我们的app在全屏竖屏的情况下布局在顶屏,然后我点击Home键,上面的apponPause()
调用了却onStop()
没有调用。
根据谷歌指南https://developer.android.com/guide/topics/ui/multi-window.html#lifecycleonStop()
,视频应用应该在回调而不是回调中暂停视频播放onPause()
。
在这种情况下,按下主页按钮,活动进入后台并且对用户不可见,我们的应用程序应该暂停视频播放但我们无法获得onStop()
回调。同时,活动不会触发onMultiWindowChanged()
回调,这意味着活动虽然在后台,但仍处于多窗口模式。在这种情况下isInMultiWindowMode()
将返回true
。
当应用程序位于左侧屏幕且整个屏幕为横向时,也会出现同样的问题。
我搜索了这个问题,发现有人已经向谷歌发布了问题,但在 Android Nougat 版本中没有处理。
那么,在这种情况下,什么时候暂停视频播放最合适呢?如果我们在onPause()
回调中暂停视频,但在多窗口模式下,用户可能会看到该活动。如果我们不这样做,在这种情况下我们将无法获得onStop()
回调。对于这种情况,是否有一些适当的解决方法?