2010-11-22 9 views
0

Uygulamanın yüzlerini kırpan bir uygulama var - uygulamanın nanosaniyede yapabileceği bir şey var, ancak kullanıcının biraz daha uzun süreceğini düşünmesini istiyorum. Bir düğme tıklandığında bir durumda Yani, İşte ne var:Kısa bir aradan sonra bir işlemi nasıl önceden yapabilirim?

final ProgressDialog dialog = ProgressDialog.show(Main.this, "", 
         "Cropping faces...", true); 
       dialog.show(); 

      Handler handler = new Handler(); 
      handler.postDelayed(new Runnable() { 
       @Override 
       public void run() { 
        dialog.dismiss(); 
       } 
      }, 3000); 
          cropFaces(); 
          return 

}

iletişim ince gösterir ve yüzleri çok ince kırpmak. Sorun şu ki - kullanıcı uygulamayı çalıştırdığında, ikisi ekranda aynı anda gerçekleşiyor.

Bunu yapmanın bir yolu var, iletişim kutusu belirir, ekranda 3 saniye geçer ve sonra cropFaces çalışır? Bu şekilde yüzleri birkaç saniye içinde kırpmış gibi görünecek ve ardından yeni sayfa belirecektir. Teşekkürler!

+0

. İşleyiciyi onClick'in dışına yerleştirmeyi deneyin. İşleyiciyi aktivitenin bir alanı olarak yerleştirin. Emin değilim, ama belki de işleyici, onclick yöntemi işlendikten sonra temizlendiğinden, çok erken postdelayed çalışır? (sadece tahmin ediyorum) –

cevap

2

Aramanızı run() yönteminizin içinde cropFaces() yöntemine koyun, bu nedenle geciktirilir. Temel olarak çalışmalıdır

İlgili konular