122 votes

Écran de force

Comment puis-je forcer l’écran pour rester actif et pas fermée au large pendant l’exécution de mon application ?

349voto

hackbod Points 55292

S'IL VOUS PLAÎT NE PAS UTILISER UN SIGNAL DE VERROUILLAGE

Cela exige que vous donnez à votre application une permission supplémentaire, et il est très facile d'introduire des bugs où vous avez accidentellement reste maintenant le sillage de verrouillage et donc de quitter l'écran.

Il est beaucoup, beaucoup mieux l'utilisation de la fenêtre de l'indicateur FLAG_KEEP_SCREEN_ON, que vous pouvez activer sur votre activité de fenêtre dans votre onCreate() comme ceci:

@Override
 protected void onCreate(Bundle icicle) {
super.onCreate(icicle);

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}

Cela permettra de s'assurer que l'écran reste allumé pendant que votre fenêtre est au premier plan, et ce, uniquement lorsqu'il est au premier plan. Il simplifie considérablement cette commune de cas d'utilisation, l'élimination de tout le jonglage, vous devez faire en tant que votre application de transitions entre états.

37voto

Pooja Kansal Points 6049

Cette Question a Déjà Grande Réponse par @hackbod !

Je réponds cette Question avec Deux autres Solutions !

Solution Existante :

@Override
    protected void onCreate(Bundle icicle) {
        super.onCreate(icicle);    
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
    }

D'Autres Solutions:

on peut utiliser keepScreenOn

1. implementation l'aide setKeepScreenOn() in java code

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // or any View (in case generated programmatically ) 
        View v = getLayoutInflater().inflate(R.layout.driver_home, null);

        v.setKeepScreenOn(true);
        setContentView(v);
       }

Docs http://developer.android.com/reference/android/view/View.html#setKeepScreenOn(booléen)

2. L'ajout d' keepScreenOn de xml layout

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:keepScreenOn="true" >

Docs http://developer.android.com/reference/android/view/View.html#attr_android%3akeepScreenOn

Note ( Quelques Points Utiles) :

1. il N'est pas question qu' keepScreenOn doit être utilisé sur Main/Root/Parent View il peut être utilisé avec n'importe quel child view fonctionnera Comme même car il fonctionne en Parent view

2. La Seule Chose importe, c'est que View's Visibility must be visible autres sage, il ne fonctionnera pas !

18voto

Alexander Abramov Points 603

Une autre solution consiste à ajouter `` (documentation) les points de vue qui ont besoin de garder l’écran.

Permet de contrôler un peu plus précis en ce qui concerne les modes restent et qui ne. Vous pouvez même référencer un paramètre d’un fichier de ressources de cette façon.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X