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

  • Dogbert files

    Dogbert file

    12 Ocak 2012
  • Jordie Jordan

    Jordie Jorda

    27 Ocak 2008
  • Miles Fisher

    Miles Fisher

    8 NİSAN 2009