2010-11-30 13 views
0

SQLへのいくつかの注入を行っています。それはそれほど時間はかかりませんが、アプリケーションがデータを注入している間はプログレスバーが必要です。Android:SQLをインジェクトする際にプログレスバーを作成するのに役立つ

これは私のコードですが、進行状況バーは表示されず、黒い画面しか表示されません。

SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); 
     boolean firstStart = settings.getBoolean("firstStart", true);   

     if(firstStart) {     
     ProgressDialog dialog = ProgressDialog.show(myInject.this, "", "Please wait.", true); 

      addInjection("The quick brown fox"); // about a hundred of these injections 

SharedPreferences.Editor editor = settings.edit(); 
     editor.putBoolean("firstStart", false); 
     editor.commit(); 

     dialog.dismiss(); //if i remove this i can see the progress dialog but wont close. 
} 
+0

別のスレッドでaddInjectionを試してください。私の推測では、メインスレッドがUIを更新するのをブロックしているということです。 – Vjy

答えて

1

あなたはこのようにUIスレッドを実行します。 AsyncTask

UIスレッドでタスクを実行しないことについて開発者サイトで読んだことは価値があります。

+0

デフォルトの進捗状況が円となり、円になります。水平バーを表示するには、STYLE_HORIZONTALを使用して、incrementProgressBy(amount)をバックグラウンドで呼び出します。これは、アトミックな操作であるため、commit()の実行中には実行できません。だから私があなたなら私は丸いものに固執します。 – Emmanuel

関連する問題