2010-12-07 11 views

cevap

40

Wakelock size daha fazla kontrol olanağı verir (ekranı kapatmadan bir şey indirmek için telefonu uyandırmak gibi) ve uygulamanızın wakelock iznini tutmasını gerektirir.

Bu nedenle, tek yapmanız gereken, pencereniz görünürken ekranı açık tutmaksa, FLAG_KEEP_SCREEN_ON önerilir. Birçok farklı seçeneğe sahip olduğundan, belirsizdir,

+0

FLAG_KEEP_SCREEN_ON sadece "USB hata ayıklama" seçeneği işaretlendiğinde işe yaradığı için bu konuda bir soru yayınladım ... http://stackoverflow.com/questions/15189767/keep-screen-on-in-activity- – Ted

+9

@Ted: ile bayrak-devam-çalışma-değil-işte burada ve ne yazdığınız (en azından) diğer iki soru sadece yanlıştır. Diğerleri için doğru şekilde koymalıyız: 'FLAG_KEEP_SCREEN_ON', tanımladığı şey için mükemmel bir şekilde çalışıyor: Ekranı sürekli açık tutuyor. Bunun çalışması için gerekli herhangi bir izin yok, ne de aygıtınız hata ayıklama modunda çalışıyor. Her cihazda çalışmalı ve eğer yoksa, cihazın hatasıdır;) – caw

2

. Bayrak FLAG_KEEP_SCREEN_ON sadece bunu yapar.

| Flag Value    | CPU | Screen | Keyboard | 
----------------------------------------------------- 
| PARTIAL_WAKE_LOCK  | On* | Off | Off  | 
| SCREEN_DIM_WAKE_LOCK | On | Dim | Off  | 
| SCREEN_BRIGHT_WAKE_LOCK | On | Bright | Off  | 
| FULL_WAKE_LOCK   | On | Bright | Bright | 

Android özellikleriyle ve kesin uygulanması için diğer cevaplar wakelock veya PowerManager bakınız.

0

Wake kilit ekran kapalı iken işi yapmak için çalışan CPU tutmak için arka plan hizmetleri kullanılır. Hiçbir aktivitede uyandırma kilidini kullanmamalısınız. Uyandırma kilidini kullanmak için, uygulamanın manifest dosyasında WAKE_LOCK izninin eklenmesi gerekir.


FLAG_KEEP_SCREEN_ON

da uyandırma kilidi aksine, herhangi bir özel izni olmadan üzerinde CPU tutacak olan açık ekranı tutmak için aktivite kullanılır. Bir hizmette FLAG_KEEP_SCREEN_ON 'u asla kullanmamalısınız.

Şerefe!