Je développe une application de lampe de poche dans laquelle il existe une lampe de poche normale dans une activité et une lumière stroboscopique dans une activité. Maintenant, j'accepte la caméra dans l'activité de la lampe de poche. Mais lorsque je suis oving à une activité stroboscopique, j'ai besoin de libérer la caméra acquise par l'activité de la lampe de poche. Je ne veux pas libérer la caméra à l'allause de l'activité de la lampe de poche car cela arrêterait la caméra même si l'utilisateur appuie sur le bouton Accueil. Je souhaite libérer la caméra uniquement lorsque l'utilisateur va à l'activité Strobe ou il quitte l'application par le bouton arrière. De plus, je veux réacquérir la caméra si l'utilisateur revenait à l'activité de la lampe de poche à partir d'une activité strobe. Est leur quand même pour le faire? P>
4 Réponses :
Si vous ne relâchez pas les ressources de la caméra dès que possible, l'utilisateur ne pourra pas utiliser l'appareil photo à partir d'une autre application. Par exemple, si l'utilisateur de votre application appuierait une touche HOME, l'objet de la caméra serait laissé verrouillé par votre application. Cela entraînerait un comportement gênant: par exemple, l'utilisateur omet de démarrer une application de caméra. P>
comme Documents officiels Suggérer: P>
Important STRAND>: Communiqué d'appel () Pour libérer l'appareil photo pour une utilisation par d'autres applications. Les applications doivent libérer la caméra immédiatement en Onpause () em> p>
Si vous ne faites pas Release Ressources de caméra manuellement, ils ne sera pas libéré strong> simplement appuyer simplement sur le bouton arrière et " sortant em>" votre application. p>
Connectez-vous simplement à votre caméra dans ONRESUME () et relâchez des ressources en Onpause (). P> Je veux relâcher la caméra uniquement lorsque l'utilisateur va à Strobe Activity ou autrement, il quitte l'application par bouton arrière. Code> P>
Je veux relâcher la caméra uniquement lorsque l'utilisateur va à Strobe Activity ou, autrement, il quitte l'application par bouton arrière code> p>
Je souhaite également réacquérir la caméra si l'utilisateur revenait à l'activité de la lampe de poche à partir d'une activité strobe. Est leur quand même de faire cela.? Code> p>
Je ne vous demanderai pas de vous arrêter de faire ce que vous voulez ou de vous parler des suggestions officielles. P>
Vous pouvez réaliser cette fonctionnalité en utilisant une classe distincte pour travailler avec la caméra et déclarer toutes ses fonctions et ses membres en tant que statique. P>
Ondestroy () Code> de l'activité de la lampe de poche, mais Strort> Si vous terminez () Code> Activité de la lampe de poche lorsque vous passez à l'activité Strobe. Ensuite, vous n'avez pas besoin d'effectuer une étape au-dessus de l'étape et votre travail sera effectué avec cette étape uniquement. Li>
ul>
D'autres réponses vous ont dit de ne pas faire cela et pourquoi. Mais pour répondre à votre question:
Conservez une référence à l'instance code> Caméra CODE> dans une variable de membre statique, de préférence dans une classe distincte, comme celle-ci: P>
public class Globals { public static Camera myCamera; }
Mise en œuvre correcte
La meilleure explication pour cela est comme indiqué par David Wasser. Nous pouvons créer une instance globale de la caméra, puis l'utiliser partout où requis. p>
Globaux de classe publique { Caméra statique publique mycamera; } p>
Bien que une autre solution de contournement consiste à créer des boutons pour entrer dans chaque type de lumière et chacun et chacun ayant différentes classes. Dans ce cas, nous pouvons laisser l'onpause sur la caméra telle qu'elle est, et il ne ferme pas la caméra sur le bouton de la maison, mais nous pouvons libérer l'appareil photo dès que l'utilisateur passe à l'activité qui contient des boutons pour sélectionner la caméra. types de lumière. Donc, la caméra sera toujours libre tout en sélectionnant. P>
Quel est le cas d'utilisation? Pourquoi voudriez-vous que la caméra reste allumée lorsque l'utilisateur appuie sur la maison?
En fait, la torche doit être allumée à moins que l'utilisateur appuie la sortie ou la désactive ..
Comment l'utilisateur va à
activité strobe code>? Il devrait y avoir un bouton ou quelque chose de bien. Vous pouvez libérer l'appareil photo lorsque l'utilisateur appuie sur ce bouton juste avant d'aller à cette activité!