2010-11-22 23 views
0

私は、作物に顔をつけたアプリを持っています。アプリはナノ秒で実行できますが、もう少し時間がかかると思ってもらいたいです。だから、ボタンのクリックの場合には、ここで私が持っているものです。一時停止後にアクションを実行するにはどうすればよいですか?

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 

}

ダイアログが細かい示しており、顔があまりにも細かいトリミング。問題は、ユーザーがアプリケーションを実行するときに、2つが同時に画面に表示されることです。

ダイアログが表示され、画面が3秒経過してからcropFacesが実行されるようにする方法はありますか?そうすれば、顔が数秒で切り取られ、新しいページが現れるように見えます。ありがとう!

+0

は基本的に動作します。ハンドラをonClickの外側に配置してみてください。ハンドラをアクティビティのフィールドとして配置します。私は確信していませんが、おそらくハンドラは、onclickメソッドが処理された後にクリーンアップされるので、あまりに早くpostdelayedを実行しますか? (ちょうど推測する) –

答えて

2

run()方法の中でcropFaces()に電話をかけても、遅れが生じます。

関連する問題