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

  • fufko

    fufko

    27 ŞUBAT 2006
  • SaraBeautyCorner - Nails and Nail Art Designs, DIY, Fashion & Makeup Tutorial

    SaraBeautyCo

    7 EKİM 2012
  • wafflepwn

    wafflepwn

    14 AĞUSTOS 2008