2016-03-30 14 views
0

Şu anda UI iş parçacığı üzerinde çalışan ve onTick'e göre arabirimi güncelleştiren bir CountdownTimer var.CountdownTimer UI iş parçacığı güncelleştiren çalışan iş parçacığı içinde

Her zaman beklendiği gibi çalışmıyor çünkü arka planda koyarsam (ana düğmeye basar) ve diğer CPU gereksinimli uygulamalarını başlatırsam uygulamanın takılıp kaldığını gördüm. Sanırım en iyi çözüm, CountDownTimer'i bir arka plan iş parçacığına taşımak olacaktır. Yanlış mıyım?

UI iş parçacığının CountDownTimer's onayına göre güncellenmesinin en iyi yolu nedir? AsyncTask kullanmak, kısa görevler için önerildiği için iyi bir fikir değildir ancak IntentService ve LocalBroadcastManager için bazı öneriler buldum.

Bunu başarmak için en iyi çözüm hangisidir? Örnekler harika olurdu. Teşekkürler!

cevap

0

1) Periyodik olarak gelecekteki görevler için AlarmManager ve Bekleyen amaçlarını kullanın. Check this

2) Kullanıcı Arabirimini güncelleştirmek için bir Çalıştırılabilir posta göndermek için İşleyiciyi kullanın.

new Handler(Looper.getMainLooper()).post(new Runnable() { 
       @Override 
       public void run() { 
        Toast.makeText(context,"This is run on UI thread",Toast.LENTH_SHORT).show(); 
       } 
      });