2010-09-13 28 views
6

Bir etkinliğim var. OnCreate etkinliği bir web sayfasının kaynağını (html) bir dizeye alır ve bir metin görünümünde sonucu (biraz ayrıştırdıktan sonra) sunar.Periyodik bakım yenileme/yeniden yükleme

En son bilgileri her zaman sunmak için etkinliğin düzenli olarak yeniden yüklenmesini/yenilemesini isterim.

Bunun için en iyi çözüm hangisidir?

+0

Takip eden bir sorum var. Uygulamamı 2 sekmeye sahip olmak için değiştirdim. Her sekme kendi aktivitesini başlatır. İlk sekme yukarıda açıklanan aktiviteyi kullanır. Periyodik güncellemeyi bu sekmeye/etkinliğe ekledikten sonra, diğer sekmeye geçmeye çalıştığımda oldukça büyük bir gecikme olur. Her sekmede görünümleri kullanarak bunu çözmek daha iyi olur mu? Bu durumda, sekmelerden/görünümlerden yalnızca birinin düzenli olarak güncellenmesini nasıl sağlayabilirim? – Raffe

+0

merhaba ben aşağıdaki cevap ur sorunu çözmek eğer ben aynı sorunu ile sıkışmış var o zaman kodu.I kodu geçti ama bir şey yanlış gidiyor gibi görünüyor .. herhangi bir yardım için çok acil thnx .. :) :) can bana mail at [email protected] – Sumant

cevap

27

Her şeyden önce ... güncelleştirme mantığını onCreate yönteminizden ayırın. Yani, örneğin, bir updateHTML() oluşturabilirsiniz. updateHTML yöntem her 40 yürütüldüğünde bu durumda ben üzerinde güncelleme görevi iptal ediyorum

public class YourActivity extends Activity { 

private Timer autoUpdate; 

public void onCreate(Bundle b){ 
    super.onCreate(b); 
    // whatever you have here 
} 

@Override 
public void onResume() { 
    super.onResume(); 
    autoUpdate = new Timer(); 
    autoUpdate.schedule(new TimerTask() { 
    @Override 
    public void run() { 
    runOnUiThread(new Runnable() { 
    public void run() { 
     updateHTML(); 
    } 
    }); 
    } 
    }, 0, 40000); // updates each 40 secs 
} 

private void updateHTML(){ 
    // your logic here 
} 

@Override 
public void onPause() { 
    autoUpdate.cancel(); 
    super.onPause(); 
} 
} 

Bildirimi ve bu:

Sonra periyodik sayfasını güncellemek için bir Timer kullanabilirsiniz sn (40000 milisaniye). Ayrıca, bu iki sınıfı içe aktardığınızdan emin olun: java.util.Timer ve java.util.TimerTask.

+0

Mükemmel, çok teşekkürler. – Raffe

+0

Takip eden bir sorum var. Uygulamamı 2 sekmeye sahip olmak için değiştirdim. Her sekme kendi aktivitesini başlatır. İlk sekme yukarıda açıklanan aktiviteyi kullanır. Periyodik güncellemeyi bu sekmeye/etkinliğe ekledikten sonra, diğer sekmeye geçmeye çalıştığımda oldukça büyük bir gecikme olur. Her sekmede görünümleri kullanarak bunu çözmek daha iyi olur mu? Bu durumda, sekmelerden/görünümlerden yalnızca birinin düzenli olarak güncellenmesini nasıl sağlayabilirim? – Raffe

İlgili konular