2011-09-08 11 views
1

私のアプリケーションが起動すると、スキャンが多くなります。いくつかの特定のフォルダを見つけるためにルートフォルダをたどり、ビデオファイルをスキャンします。問題は、アプリケーションの開始時に約4〜5秒間空白の画面が表示されることです。プログレスバーを表示したかったのですが、アプリケーションがプログレスバーが表示されるのを待たずにいるようです。むしろ、それは時間のかかるトラバースループに入り続け、その後、進行状況バーを表示します。誰かが例や示唆を与えることができます..私はAsynTaskがここで助けてくれると思っていますが、私はある例を探しています。Android:アプリケーションが開始時にプログレスバーを表示しない

ありがとうございます。

+0

いくつかのコードが何をしようとする有用である可能性を追加。 –

答えて

2
private class xyz extends AsyncTask<Void, Void, Void> { 
    private final ProgressDialog dialog = new ProgressDialog(tranning.this); 

    @Override 
    protected void onPreExecute() { 
     this.dialog.setMessage("Please Wait..."); 
     this.dialog.show(); 
     // put your code which preload with processDialog 
    } 


    @Override 
    protected Void doInBackground(Void... arg0) { 
     // put your code here 
     return null; 
    } 

    @Override 
    protected void onPostExecute(final Void unused) { 
     if (this.dialog.isShowing()) { 
      this.dialog.dismiss(); 

     } 
    } 
} 

とメインでこれを使用::

new xyz().execute(); 
+0

more :: http://developer.android.com/reference/android/os/AsyncTask.html –

+0

私はいくつかの操作をやりたい(doInBackground)内の処理後の主な機能は終了しました。(doInBackground)が動作している間、私はちょうど主な機能を待っています..何か方法はありますか? – Farhan

+0

ファーハン、あなたはそれをしたくありません!これはUIスレッドをブロックし、記述したような問題を引き起こします(進捗ダイアログは表示されません)。あなたは、トラバース操作が完了したときに 'Handler'に' Message'を送信し、次の操作をトリガーしたり、 'onPostExecute'から' yourFunc() 'を単に呼び出すこともできますUIスレッドで – Dave

0

onCreate()メソッドのプログレスバーを表示するコードをすべての通過コードの上に置き、試してみてください。

+0

いいえ、それは助けにはなりません。アプリケーションは、進行状況バーが表示されるのを待っていません。それはむしろトラバースに入り、そこにこだま... – Farhan

関連する問題