Nous avons enterPictureInPictureMode()
pour déplacer une activité à partir de sa forme actuelle en une image dans l'image, de la représentation.
Quel est le moyen par lequel nous revenir qui, de retour de l'activité à son état normal, en plus de détruire l'activité? Il n'y a pas d' exitPictureInPictureMode()
, leavePictureInPictureMode()
ou janeGetMeOffThisCrazyPictureInPictureModeThing()
méthode Activity
, et la documentation ne semble pas couvrir une alternative.
Je suis intéressé par une solution pour Android O, pour l'image en mode d'image sur les appareils mobiles, mais si cela fonctionne pour Android TV, merveilleux!
Mise à JOUR 2017-04-08: Si ce que vous voulez est pour revenir au mode normal lorsque l'utilisateur clique sur le bouton X pour quitter le picture-in-picture mode, vous pouvez faire quelque chose comme ceci:
@Override
public void onPictureInPictureModeChanged(boolean isInPictureInPictureMode) {
super.onPictureInPictureModeChanged(isInPictureInPictureMode);
if (!isInPictureInPictureMode) {
getApplication().startActivity(new Intent(this, getClass())
.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT));
}
}
La clé de bits sont à l'appel startActivity()
pour démarrer l'activité actuelle de nouveau avec FLAG_ACTIVITY_REORDER_TO_FRONT
. Avec un singleTask
de l'activité, vous devez appeler que sur certains non-Activity
contexte, comme l' Application
singleton. Cela ne semble pas déclencher onStop()
ou onStart()
, mais il ne déclencher onNewIntent()
(avec tout ce que Intent
vous passez startActivity()
).