我做了一些关于它的阅读。首先,EXTRA_STREAM 不使用FLAG_GRANT_READ_URI_PERMISSION
. 它从 JellyBean 开始工作,只是因为在后台调用startActivity()
副本EXTRA_STREAM
到ClipData
,这是为 Intent 设置的并使用FLAG_GRANT_READ_URI_PERMISSION
。
关于您应该在哪里调用 revokeUriPermission() 的问题。
我建议使用:
private static final int REQUEST_CODE = 1;
startActivityForResult(intent, REQUEST_CODE);
代替
startActivity(intent);
然后覆盖以下方法:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// Check which request we're responding to
if (requestCode == REQUEST_CODE) {
// Call revokeUriPermission here
}
}
当启动的活动退出时,将调用上述方法。在这里查看文档