Comment laissons-nous le mode Picture-In-Picture?

Nous avons enterPictureInPictureMode() pour déplacer une activité de sa forme actuelle en une représentation image-image.

Quel est le moyen par lequel nous revenons, renvoyant l'activité à son état normal, en plus de détruire l'activité? Il n'y a pas de exitPictureInPictureMode() , leavePictureInPictureMode() , ou janeGetMeOffThisCrazyPictureInPictureModeThing() méthode sur Activity , et la documentation ne semble pas couvrir une alternative.

  • Obtenez de la valeur de RemoteMessage à partir de la méthode FCM onMessageReceived
  • ActivityNotFoundException lors de l'utilisation du plugin Facebook avec Unity
  • TextView est-il lié et sélectionnable?
  • Comment puis-je implémenter une barre d'action personnalisée avec des boutons personnalisés dans Android?
  • Pourquoi la classe BuildConfig utilise-t-elle Boolean.parseBoolean () au lieu des valeurs littérales?
  • Comment faire une pause / raccrocher un thread ou un processus dans Android?
  • Je suis intéressé par une solution pour Android O, pour le mode image-image sur les appareils mobiles, mais si cela fonctionne aussi pour Android TV, c'est merveilleux!

    UPDATE 2017-04-08 : si ce que vous voulez, c'est revenir au mode normal lorsque l'utilisateur clique sur le bouton X pour quitter le mode image en image, 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)); } } 

    Les bits clés doivent appeler startActivity() pour recommencer l'activité actuelle avec FLAG_ACTIVITY_REORDER_TO_FRONT . Avec une activité singleTask , vous devez appeler cela sur un contexte non Activity , tel que l' Application singleton. Cela ne semble pas déclencher onStop() ou onStart() , mais il déclenche onNewIntent() (avec n'importe quel Intent vous passez à startActivity() ).

  • Comment puis-je exécuter le code sur un thread d'arrière-plan sur Android?
  • Problème de zoom ViewPager & ImageView
  • OnRequestPermissionsResult n'est pas appelé en fragment s'il est défini dans le fragment et l'activité
  • Application Android avec les instructions de voix GPS
  • Tâche d'arrière-plan, dialogue de progression, changement d'orientation - existe-t-il une solution à 100% de travail?
  • Pourquoi la balise viewport sur Galaxy Nexus / Android 4 ne fonctionne-t-elle pas?
  • 3 Solutions collect form web for “Comment laissons-nous le mode Picture-In-Picture?”

    1. Déplace l'activité vers l'arrière

       activity.moveTaskToBack(false /* nonRoot */); 
    2. Restaurer l'activité à l'avant

       Intent startIntent = new Intent(PipActivity.this, PipActivity.class); startIntent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); activity.startActivity(startIntent); 

    Je ne pense pas que l'activité puisse décider de quitter le mode Picture-in-picture.

    À partir du document d'aperçu API Android O :

    L'activité entrant dans le mode PIP passe dans l'état de pause, mais reste en marche. Si l'utilisateur tape l'activité PIP, le système affiche un menu pour lequel l'utilisateur peut interagir; Aucun événement tactile n'atteint l'activité pendant qu'il se trouve dans l'état PIP.

    L'activité sera notifiée par onPictureInPictureModeChanged() .

    La documentation officielle indique que la fenêtre PIP propose un menu qui vous permet de basculer en plein écran.

    La fenêtre PIP est 240×135 dp et est affichée à la couche la plus haute dans l'un des quatre coins de l'écran, choisis par le système. L'utilisateur peut afficher un menu PIP qui permet de basculer la fenêtre PIP en plein écran ou de fermer la fenêtre PIP en maintenant enfoncé le bouton Accueil sur la télécommande. Si une autre vidéo commence à jouer sur l'écran principal, la fenêtre PIP est automatiquement fermée.

    Et vous pouvez annuler l'événement modifié PIP pour gérer les éléments UI chaque fois que l'utilisateur bascule le mode PIP.

    Lien vers onPictureInPictureModeChanged

     @Override public void onPictureInPictureModeChanged(boolean isInPictureInPictureMode) { if (isInPictureInPictureMode) { // Hide the controls in picture-in-picture mode. ... } else { // Restore the playback UI based on the playback status. ... } } 
    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.