Android开发之服务连接泄露异常
来源:互联网 发布:exec php 编辑:程序博客网 时间:2024/04/30 18:05
写了个Android service,用来完成一些耗时的网络IO和远程设备连接。在Activity中,先用startService( )启动服务,然后调用bindService( )将Activity邦定到该服务上,最后执行程序。看起来程序运行没有问题,不过Log显示出现一个异常,如下:
E/ActivityThread(12467): Activity com.raycommtech.rayfastcfg.wlan.WifiConfigNavigateActivity has leaked ServiceConnection com.raycommtech.rayfastcfg.wlan.WifiConfigNavigateActivity$1@40529ba8 that was originally bound hereE/ActivityThread(12467): android.app.ServiceConnectionLeaked: Activity com.raycommtech.rayfastcfg.wlan.WifiConfigNavigateActivity has leaked ServiceConnection com.raycommtech.rayfastcfg.wlan.WifiConfigNavigateActivity$1@40529ba8 that was originally bound hereE/ActivityThread(12467): at android.app.LoadedApk$ServiceDispatcher.<init>(LoadedApk.java:938)E/ActivityThread(12467): at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:833)E/ActivityThread(12467): at android.app.ContextImpl.bindService(ContextImpl.java:933)E/ActivityThread(12467): at android.content.ContextWrapper.bindService(ContextWrapper.java:347)E/ActivityThread(12467): at com.raycommtech.rayfastcfg.wlan.WifiConfigNavigateActivity.onStart(WifiConfigNavigateActivity.java:81)E/ActivityThread(12467): at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1129)E/ActivityThread(12467): at android.app.Activity.performStart(Activity.java:3833)E/ActivityThread(12467): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1624)E/ActivityThread(12467): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)E/ActivityThread(12467): at android.app.ActivityThread.access$1500(ActivityThread.java:117)E/ActivityThread(12467): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)E/ActivityThread(12467): at android.os.Handler.dispatchMessage(Handler.java:99)E/ActivityThread(12467): at android.os.Looper.loop(Looper.java:130)E/ActivityThread(12467): at android.app.ActivityThread.main(ActivityThread.java:3691)E/ActivityThread(12467): at java.lang.reflect.Method.invokeNative(Native Method)E/ActivityThread(12467): at java.lang.reflect.Method.invoke(Method.java:507)E/ActivityThread(12467): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:907)E/ActivityThread(12467): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:665)E/ActivityThread(12467): at dalvik.system.NativeStart.main(Native Method)看提示是ServiceConnection在使用的时候出现泄露了,原因是由于bind到service后,没有调用unbind进行释放。这个跟C/C++里的内存泄露应该是一类问题,资源使用完没有释放。
解决办法:程序退出前调用unbindService( )释放服务连接
- Android开发之服务连接泄露异常
- Android开发内存泄露之--Handler引起的内存泄露
- Android异常:ServiceConnection 泄露
- Android应用开发之避免内存泄露
- Android开发之—内存泄露篇
- Android开发之NetworkOnMainThreadException异常
- Android开发之Service服务
- 【Android 开发】Android App 内存泄露之Handler
- Android应用安全开发之防范无意识的数据泄露
- Android开发之Android的核心服务
- Android开发之Android的核心服务
- android异常:dialog窗口句柄泄露
- Android Dialog的 WindowLeaked窗体泄露异常
- Android开发 之 常见异常处理
- android开发之程序异常捕捉处理
- Android开发之getResponseCode抛出异常
- Android开发之全局异常捕获
- Android开发--内存泄露调试
- IOS 联机调试和发布程序(99$的官方证书方式
- 用Homebrew替换MacPorts
- 当std::ref遇到前置声明
- (9)观察者模式
- 使用CImage类切割png图片
- Android开发之服务连接泄露异常
- 一道面试题:140个google面试题
- CSDN第一期总结之一:Form问题
- SWFUpload 在IE9下不显示问题及IE9中模态窗下flash文件选择问题的处理
- SQL ON Teradata
- 为什么ListView.setOnItemClickListener、setOnCreateContextMenuListener会无效
- JXL----API 分析
- 多线程编程的苦恼
- ArcGIS 技术公开课资料 下载地址url