グリッド ビューで画像を読み込んでいるときに、進行状況ダイアログを表示したいと考えています。
私が直面している問題は、現在のスレッドと進行状況ダイアログのスレッドが同時に実行されていることでした。
public String Method1(){
String output="";
final ProgressDialog aProgDialogL = ProgressDialog.show(this, "", "Loading...");
Thread thread = new Thread() {
public void run () {
//My codes
aHandlerL.post(new Runnable() {
@Override
public void run() {
//Post Runnable codes
aProgDialogL.dismiss();
}
});
}
};
thread.start();
/*
*
*
* OTHER CODES
*
*
*/
return output;
}
上記の例では、Progress Dialog Thread 内でコードを実行する必要があります。実行が終了したら、「その他のコード」を実行する必要があります。どうやってするの?
.
非同期タスクを使用してみました。非同期タスクが完了する前に、method1 が削除され、文字列が返されます。
public String Method1(){
String result="";
new GetImages().execute();
return result;
}
public class GetData extends AsyncTask<Void, Void, Integer>{
@Override
protected void onPreExecute() {
aProgDialogL = ProgressDialog.show(Main.this, "", "Loading...");
}
@Override
protected Integer doInBackground(Void... params) {
//Progress Dialig Code
return null;
}
@Override
protected void onPostExecute(Integer result) {
aProgDialogL.dismiss();
//OTHER CODES
super.onPostExecute(result);
}
}