2016-04-05 28 views
-1

Her saat başı bir servis planlamak için bir AlarmManager kullanıyorum, ancak sadece ekran kilidi açıldığında ihtiyacım var, bu yüzden son kullanıcı cihazı kullanıyor. AlarmManager'ı SCREEN_ON ve SCREEN_OFF değişkenleriyle, ancak başarılı olmadan kullanmaya çalıştım. AlarmManager tekrar programını nasıl ayarlayacağımı anlayamıyorum.Android başlat servisi yalnızca ekran açıkken

+0

Bildiğim kadarıyla, eğer kullanıcı cihazı kullanıyorsa, AlarmManager sınıfını ayarlayamazsınız. Alarmı sadece zamana göre ayarlayabilir ve cihazın ekranının aktif veya devre dışı olduğunu kontrol etmeniz gerekir. Alternatif olarak, hizmetiniz çalışmaya başladığında ekranı uyandırabilirsiniz. Bu özellikleri kullanarak, startActivity() öğesini çağırmadan önce onReceive() 'da bir WakeLock edinmeniz ve kullanıcı etkinliğinize yanıt verdikten sonra bu WakeLock ürününü serbest bırakmanız gerekir. –

cevap

2

Hizmetinizi çalıştırmadan önce, Ekranın KAPALI veya AÇIK olduğunu kontrol edin.

KeyguardManager keyguardManager = (KeyguardManager)context.getSystemService(Context.KEYGUARD_SERVICE); 
if(!keyguardManager.inKeyguardRestrictedInputMode()) { 
// Code here. 
} 
+0

Evet, yararlıdır. Yani, ekran açıldığında hemen hizmeti başlatabilir miyim? AlarmManager'dan saatte –

+0

yanıt alır mısınız? –

+0

Evet ... Her zaman yanıt alırım –