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

  • finalcall07

    finalcall07

    11 NİSAN 2008
  • hydejiaqi

    hydejiaqi

    12 Mart 2008
  • WoodysGamertag

    WoodysGamert

    17 Aralık 2009