在Android中,我使用方法detachFd从parefiledescriptor获得一个文件描述符传递给本机代码以供使用。作为文件描述符我在本机代码中使用fdclose关闭它.
既然它是分离的,我还应该关闭ParcelFileDescriptor java实例吗?
在我看来,我不应该,但我发现在旧版本的Android,如棒棒糖,StrictMode抱怨资源没有关闭,可能是因为不知道它已被分离。
如果需要关闭ParcelFileDescriptor即使文件描述符已被分离,如果在本机代码中仍然使用分离的文件描述符时关闭,是否有任何副作用需要注意?
标准做法,如:
try (ParcelFileDescriptor pFd = ParcelFileDescriptor.open(new File(path), ParcelFileDescriptor.MODE_READ_WRITE)) {
int fd = pFd.detachFd();
} catch (IOException e) {
}
因为"ParcelFileDescriptor"one_answers";fd"已分开,关闭对象不会影响"fd"
// native
close(fd)