ともちゃんのアプリ開発日記

組込みC言語プログラマだったともちゃんが、四苦八苦しながら、AndroidのJAVA/Kotlin、iOSのSwiftUIを習得して行きます。ともちゃんの備忘録も兼ねています。

マルチスレッド

1.マルチスレッドのクラス定義

static class AsyncExportProgress extends AsyncTask<Void, Void, String> {

ProgressDialog progressDialog;

@Override
protected void onPreExecute() {
// ここに前処理を記述します
// 例) プログレスダイアログ表示
DataCenter dataCenter = new DataCenter();
progressDialog = new ProgressDialog(dataCenter.getExportImportContext());
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progressDialog.setMessage("処理を実行しています");
progressDialog.setCancelable(true);
progressDialog.show();
}
@Override
protected String doInBackground(Void... arg0) {
FileIO fileIO = new FileIO();
DataCenter dataCenter = new DataCenter();
fileIO.exportFile(dataCenter.getExportImportContext(), progressDialog);
return "Thread Samples";
}
@Override
protected void onPostExecute(String result) {
// バックグランド処理終了後の処理をここに記述します
// 例) プログレスダイアログ終了
// UIコンポーネントへの処理
progressDialog.dismiss();
}
}

 

 2.スレッドの呼び出し側

AsyncExportProgress asyncExportProgress = new AsyncExportProgress();
asyncExportProgress.execute();