ネットワーク処理をさせている間にProgressDialogを表示させたい時など
public class MainActivity extends Activity {
ProgressDialog progressDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
progressDialog = new ProgressDialog(this);
MyAsyncTask task = new MyAsyncTask();
//バックグランド処理を実行
task.execute(getApplicationContext());
//このログが実行されているときに、MyAsyncTaskが終わっているとは限らなので
//MyAsyncTask後に処理させたいときはonPostExecute()を使用すること
Log.i("tag", "mes");
}
public class MyAsyncTask extends AsyncTask {
@Override
//doInBackgroundが実行されてる前に呼ばれる
protected void onPreExecute() {
//ProgressDialogなどはここで実装すると良い
progressDialog.setMessage("データを取得しています。");
progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progressDialog.setCancelable(false);
progressDialog.show();
}
//バックグランド処理はここに追加
@Override
protected Integer doInBackground(Context... context) {
//何かの処理
return 1;
}
//doInBackgroundが実行された後に呼ばれる
@Override
protected void onPostExecute(Integer result) {
progressDialog.dismiss();
}
}
}
0 件のコメント:
コメントを投稿