ネットワーク処理をさせている間に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 件のコメント:
コメントを投稿