Android服务示例代码泄漏文件描述符
我目前在Nexus4上运行Android 4.4.4,在Nexus7的4.4.4上也看到过这个问题 我有一个围绕服务子类构建的应用程序,示例代码如下: 我正在使用HelloService。由于打开的文件太多,导致崩溃,我逐渐将代码剥离到现在只有项目()中的示例代码。每次服务启动和停止时,仍会泄漏3个文件描述符 每次启动和停止时,lsof都会添加3行,如下所示: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 ??? ???
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();
}