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