Android服务示例代码泄漏文件描述符

Android服务示例代码泄漏文件描述符,android,memory-leaks,file-descriptor,Android,Memory Leaks,File Descriptor,我目前在Nexus4上运行Android 4.4.4,在Nexus7的4.4.4上也看到过这个问题 我有一个围绕服务子类构建的应用程序,示例代码如下: 我正在使用HelloService。由于打开的文件太多,导致崩溃,我逐渐将代码剥离到现在只有项目()中的示例代码。每次服务启动和停止时,仍会泄漏3个文件描述符 每次启动和停止时,lsof都会添加3行,如下所示: com.cousi 11633 u0_a82 69 ??? ???

我目前在Nexus4上运行Android 4.4.4,在Nexus7的4.4.4上也看到过这个问题

我有一个围绕服务子类构建的应用程序,示例代码如下:

我正在使用HelloService。由于打开的文件太多,导致崩溃,我逐渐将代码剥离到现在只有项目()中的示例代码。每次服务启动和停止时,仍会泄漏3个文件描述符

每次启动和停止时,lsof都会添加3行,如下所示:

com.cousi 11633     u0_a82   69       ???                ???       ???        ??? pipe:[193985]
com.cousi 11633     u0_a82   70       ???                ???       ???        ??? pipe:[193985]
com.cousi 11633     u0_a82   71       ???                ???       ???        ??? anon_inode:[eventpoll]
我的实际应用程序创建和停止服务的频率足够高,以至于在一段时间后,它达到1024的极限并被终止

我已经进行了广泛的搜索,找到了一些其他人,他们可能引用了相同的问题,但没有找到任何解决方案

有什么想法吗


谢谢

尝试退出处理程序的
活套
内部
onDestroy()

实际上,它看起来像样本中的一个bug

@Override
public void onDestroy() {
    mServiceLooper.quit();
    Toast.makeText(getApplicationContext(), "service done", Toast.LENGTH_SHORT).show();
}