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

  • A Alkhaldi

    A Alkhaldi

    12 Mayıs 2007
  • LinusTechTips

    LinusTechTip

    25 Kasım 2008
  • rekjavicxxx

    rekjavicxxx

    28 EKİM 2007