【Android】ファイル転送中に他の操作を禁止する方法

Android

転送中に他の操作を禁止するには、プログレスダイアログやローディングスピナーを表示し、完了するまでユーザーの操作をブロックする方法があります。以下に、例としてプログレスダイアログを表示する方法を示します。

まず、メインスレッドでプログレスダイアログを表示します。

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)を使用することで、ユーザーがダイアログをキャンセルできないように設定できます。

この方法で、ファイル転送中に他の操作を行うのを防ぐことができます。

コメント