転送中に他の操作を禁止するには、プログレスダイアログやローディングスピナーを表示し、完了するまでユーザーの操作をブロックする方法があります。以下に、例としてプログレスダイアログを表示する方法を示します。
まず、メインスレッドでプログレスダイアログを表示します。
java
ProgressDialog progressDialog = new ProgressDialog(getActivity());
progressDialog.setMessage("ファイルを転送中...");
progressDialog.setCancelable(false); // ダイアログをキャンセルできないようにする
progressDialog.show();
そして、ファイル転送の完了後にプログレスダイアログを閉じます。
java
new Thread(() -> {
// ファイル転送処理を行う
try {
// 例: ファイル転送処理
smbFile.copyTo(targetFile);
} catch (IOException e) {
e.printStackTrace();
}
// ファイル転送が完了したらプログレスダイアログを閉じる
getActivity().runOnUiThread(() -> {
if (progressDialog.isShowing()) {
progressDialog.dismiss();
}
});
}).start();
上記のコードでは、ProgressDialogを使用してユーザーの操作を一時的にブロックし、ファイル転送が完了したら閉じるようにしています。setCancelable(false)を使用することで、ユーザーがダイアログをキャンセルできないように設定できます。
この方法で、ファイル転送中に他の操作を行うのを防ぐことができます。



コメント