SORU
5 HAZİRAN 2011, Pazar


Belli bir süre sonra görev tekrar?

Demek benim kodda bir değişken var"". durum

Uygulama bu değişken değerine bağlı olarak metin görüntülemek için istiyorum. Bu belirli bir süre gecikme ile yapılması gerekiyor.

Gibi

  • Durum değişken değerini kontrol edin

  • Bazı metni görüntüler

  • 10 saniye bekleyin

  • Durum değişken değerini kontrol edin

  • Bazı metni görüntüler

  • 15 saniye bekleyin

ve benzeri. Gecikme süresini metin görüntülenir bir kez ayarlanır değişir ve olabilir.

Thread.sleep(time delay) denedim ve başarısız oldu. Bu halletmek için daha iyi bir yolu?

CEVAP
5 HAZİRAN 2011, Pazar


HandlerpostDelayed Bu amaçla fonksiyon kullan bence. UI kontrolleri güncellemek için mümkün olacak, böylece ana UI iş parçacığı üzerinde belirtilen gecikme ile kodunuzu çalıştırır.

private int mInterval = 5000; // 5 seconds by default, can be changed later
  private Handler mHandler;

  @Override
  protected void onCreate(Bundle bundle) {
    ...
    mHandler = new Handler();
    startRepeatingTask();
  }

  Runnable mStatusChecker = new Runnable() {
    @Override 
    public void run() {
      updateStatus(); //this function can change value of mInterval.
      mHandler.postDelayed(mStatusChecker, mInterval);
    }
  };

  void startRepeatingTask() {
    mStatusChecker.run(); 
  }

  void stopRepeatingTask() {
    mHandler.removeCallbacks(mStatusChecker);
  }

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • buttheadgsxr1000

    buttheadgsxr

    24 Ocak 2008
  • Hak5

    Hak5

    7 EYLÜL 2005
  • sghaff1

    sghaff1

    23 Mart 2009