gpt4 book ai didi

android - onActivityResult 是异步的,我的 ProgressBar 没有显示

转载 作者:行者123 更新时间:2023-11-30 01:20:49 26 4
gpt4 key购买 nike

我从一个 DialogFragment 开始一个 ACTION_GET_CONTENT Intent ,用户可以在其中选择文件。选择文件后, Activity 结束,并使用结果执行 onActivityResult

onActivityResult 中,我正在读取文件的输入流,这可能需要一段时间,因为有些文件是从 Internet 下载的。

为了向用户提供反馈,我想显示一个确定的进度条。问题是进度条在 onActivityResult 完成后显示。我在运行调试器时发现了这一点。

如何在执行 onActivityResult 时显示进度对话框?

@Override
public void onActivityResult(int requestCode, int resultCode, final Intent data) {
// TODO Fix no activity available
if (data == null)
return;
switch (requestCode) {
case PICKFILE_RESULT_CODE:
if (resultCode == Activity.RESULT_OK) {
final ClipData clipData = data.getClipData();
if (clipData != null) {
for (int i = 0; i < clipData.getItemCount(); i++){
final ClipData.Item item = clipData.getItemAt(i);
addAttachment(item.getUri());
}
} else {
addAttachment(data.getData());
}
}
}
}


private void addAttachment(Uri uri) {
File file;

String filePath = AttachmentUtils.getPath(getContext(), uri);
if (!Utils.isEmpty(filePath)) {
file = new File(filePath);
} else {


ProgressDialog progressDialog = new ProgressDialog(getActivity());
progressDialog.setIndeterminate(false);
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progressDialog.setCanceledOnTouchOutside(false);
progressDialog.setMessage("Bezig met downloaden");
progressDialog.show();

file = AttachmentUtils.getFileFromStream(getActivity(), uri, progressDialog);

progressDialog.hide();

return;
}

//some more code where I do things with the files after download

}

最佳答案

检查下面的调用是否在 ui 线程或另一个线程上运行。隐藏 getFileFromStream 的进度条对话框结束。不要在紧接着的一行中调用。

AttachmentUtils.getFileFromStream(getActivity(), uri, progressDialog);

关于android - onActivityResult 是异步的,我的 ProgressBar 没有显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37137833/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com