我们有 enterPictureInPictureMode()
将 Activity 从其当前形式移动到画中画表示。
除了销毁 Activity 之外,我们还通过什么方式恢复它,将 Activity 恢复到正常状态? Activity
上没有 exitPictureInPictureMode()
、leavePictureInPictureMode()
或 janeGetMeOffThisCrazyPictureInPictureModeThing()
方法,以及文档似乎没有涵盖替代方案。
我对适用于 Android O 的解决方案感兴趣,它适用于移动设备上的画中画模式,不过如果它也适用于 Android TV,那就太好了!
UPDATE 2017-04-08:如果您想要在用户单击 X 按钮退出画中画模式时返回正常模式,您可以执行以下操作:
@Override
public void onPictureInPictureModeChanged(boolean isInPictureInPictureMode) {
super.onPictureInPictureModeChanged(isInPictureInPictureMode);
if (!isInPictureInPictureMode) {
getApplication().startActivity(new Intent(this, getClass())
.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT));
}
}
关键位是调用 startActivity()
以使用 FLAG_ACTIVITY_REORDER_TO_FRONT
再次启动当前 Activity 。对于 singleTask
Activity ,您需要在一些非 Activity
上下文中调用它,例如 Application
单例。这似乎不会触发 onStop()
或 onStart()
,但它确实会触发 onNewIntent()
(使用任何 Intent
你传递给 startActivity()
)。
最佳答案
将 Activity 移到后面
activity.moveTaskToBack(false /* nonRoot */);
将 Activity 恢复到最前面
Intent startIntent = new Intent(PipActivity.this, PipActivity.class); startIntent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); activity.startActivity(startIntent);
关于android - 我们如何离开画中画模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43174507/