2011-06-21 18 views
7

Çalışan bir android servisi var, ancak verileri güncellemek için her X saatte bir belirli bir hizmet yöntemi uygulamak istiyorum. Android kaynaklarını boşa harcamadan bunu yapmak için en iyi yaklaşım nedir?Belirli aralıklarla nasıl bir hizmet yöntemi çalıştırırım?

+0

Neden hizmeti bir kez başlatıyorsunuz ve sonra bir zamanlayıcı eklemiyor ya da parçayı istediğiniz zamana göre uyuyamıyorsunuz? – CodeKrieger

+0

Bu, hizmet işleminin * her zaman * yürütmesini gerektirir. Saatlerce. Bu kaynak etkili değildir. –

+0

Teşekkürler! Öğreniyorum, zamanlayıcıyı nasıl arayacağımı araştıracağım. Herhangi bir öneriniz? – Ferran

cevap

8

AlarmManager'a bakın.

Açıklama: Hizmet yönteminin saatlik aralıklarla çalışmasını istediğinizde, bu süre boyunca hizmet işleminizin devam etmesini istemezsiniz. OS, AlarmManager'u kullanarak, gerekmediğinde servisi öldürebilir ve zamanı geldiğinde yöntemi yürütmek için getirebilir.

+0

Eğer aralıklar dakikalar meselesiyse? AlarmManager'ı kullanmak iyi bir fikir mi? Ya da birkaç dakika servis uyku tarafından çağrılan ipi daha iyi yapmak? – Leeeeeeelo

+1

@Leeeeeeelo - verimlilik için, küçük aralıklarla (10-15 dakikadan az), AlarmManager ile gitmemelisiniz. SO üzerinde başka yerlerde tartışmalar vardır, ör. http://stackoverflow.com/questions/11434056/how-to-run-a-method-every-x-seconds –

İlgili konular