finishActivity请求代码实际上没有关闭

时间:2017-05-25 20:27:41

标签: android android-intent android-activity

我正在启动文件资源管理器并对资源管理器中的文件进行一些处理。我希望文件浏览器活动在我按下"选择"按钮。但是,似乎它在关闭之前首先在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);
    }
}

1 个答案:

答案 0 :(得分:0)

文件资源管理器在调用完成后立即结束。完成。对于你甚至让onActivityResult称它已经结束了。但是onActivityResult在onResume和类似函数之前被调用。