我正在启动文件资源管理器并对资源管理器中的文件进行一些处理。我希望文件浏览器活动在我按下"选择"按钮。但是,似乎它在关闭之前首先在onFileQueueAvailable
中进行处理。
private Queue<DocumentFile> fileQueue = new LinkedList<>();
static final int REQUEST_CHOOSE_FOLDER = 59;
public void startChooseFolder() {
Intent i = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE);
startActivityForResult(i, REQUEST_CHOOSE_FOLDER);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_CHOOSE_FOLDER) {
fileQueue = new LinkedList<>();
Uri uri = data.getData();
DocumentFile chosenDirectory = DocumentFile.fromTreeUri(this, uri);
for (DocumentFile file : chosenDirectory.listFiles()) {
fileQueue.add(file);
}
}
}
@Override
protected void onResume() {
super.onResume();
if (!fileQueue.isEmpty()) {
onFileQueueAvailable(fileQueue);
}
}
答案 0 :(得分:0)
文件资源管理器在调用完成后立即结束。完成。对于你甚至让onActivityResult称它已经结束了。但是onActivityResult在onResume和类似函数之前被调用。