在Android中,我使用来自ParceFileDescriptor的方法ParceFileDescriptor获得一个文件描述符,并将其传递给本机代码以供使用。在分离文件描述符时,我使用fdclose在本机代码中关闭它。
既然它是分离的,我是否还应该关 ParcelFileDescriptor java实例?
在我看来,我不应该这样做,但我发现,在较早版本的安卓系统(如Lollipop )中,StrictMode抱怨资源没有关闭,可能是因为不知道它已经被分离了。
如果即使在分离文件描述符时也需要关闭ParcelFileDescriptor,那么在本机代码中仍然使用分离的时,是否有任何副作用需要注意?
发布于 2022-01-20 02:27:18
标准做法是这样的:
try (ParcelFileDescriptor pFd = ParcelFileDescriptor.open(new File(path), ParcelFileDescriptor.MODE_READ_WRITE)) {
int fd = pFd.detachFd();
} catch (IOException e) {
}因为"ParcelFileDescriptor“和"fd”已经分开,所以关闭对象不会影响"fd“。
// native
close(fd)https://stackoverflow.com/questions/69665642
复制相似问题