出现leaked ServiceConnection 的解决办法

原创 2015年07月07日 16:10:37

欢迎转载,但请附上出处~~
http://blog.csdn.net/as02446418/article/details/46790843

出现leaked ServiceConnection 的解决办法

Activity com.skyace.service.MainActivity has leaked ServiceConnection com.phicomm.hu.MainActivity that was originally bound here
android.app.ServiceConnectionLeaked: Activity com.skyace.service.MainActivity has leaked ServiceConnection com.skyace.service.MainActivity$1@41cd81f0 that was originally bound here
  • 起因

    最近在做项目时,用到了关于service与actvity绑定的知识,但是在调试过程中无意中出现了上述的bug,后来经分析,当清理后台activity时就会报这个错误,我们来看一下代码:


public class MainActivity extends Activity 
{
    //定义浮动窗口布局
    LinearLayout mFloatLayout;
    //创建浮动窗口设置布局参数的对象
    WindowManager.LayoutParams wmParams = new WindowManager.LayoutParams();
    WindowManager mWindowManager;
    //定义对getInformation的引用
    GetInformation getInformation;
    //** Called when the activity is first created. 

    FxService.MyBinder myBinder;


    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Button start = (Button)findViewById(R.id.start_id);

        Button remove = (Button)findViewById(R.id.remove_id);

        GetInformation.createGetInformation(this);
        getInformation = GetInformation.getGetInformation();

        start.setOnClickListener(new OnClickListener() 
        {

            @Override
            public void onClick(View v) 
            {

                bindService();
            }
        });

        remove.setOnClickListener(new OnClickListener() 
        {

            @Override
            public void onClick(View v) 
            {
                unbindService(conn);
            }
        });

    }

    private ServiceConnection conn = new ServiceConnection() {

        @Override
        public void onServiceDisconnected(ComponentName name) {
            System.out.println("--Service Disconnected--");

        }

        @Override
        public void onServiceConnected(ComponentName name, IBinder service) {
            System.out.println("--Service Connected--");
            myBinder = (FxService.MyBinder) service;
            FxService fxService = myBinder.getService();
        }
    };

    private void bindService(){
        Intent intent = new Intent(MainActivity.this, FxService.class);
        bindService(intent, conn, BIND_AUTO_CREATE);
    }

后来在之后加上了重写的onDestroy的回调方法中加入了对服务的解绑操作即 unbindService就成功解决了,如下:

@Override
    protected void onDestroy() {
        // TODO 自动生成的方法存根
        super.onDestroy();
        unbindService(conn);
    }

其实这个错误有点类似于dialog中如果activity已经finish()掉但dialog还没dissmiss()时也会报类似的溢出错误,希望大家引以为戒,多多注意自己的代码习惯,做好防护的措施。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

has leaked ServiceConnection

当我们采用bindService(service, conn, flags)而不是 startService(service)启动服务Service的时候,如果我们在关闭Activity的时候没有释放...

Android中颜色透明度对应16进制值

对应列表 <!--55% — 8C

解决has leaked ServiceConnection com.baidu.location.c@427b6780

解决“has leaked ServiceConnection com.baidu.location.c@427b6780 that was originally bound here”的错误,需要修...

百度地图sdk---地图定位功能的错误has leaked ServiceConnection com.baidu.location.LocationClient

这个问题是在使用百度地图定位功能的时候出现的出现这个问题的原因有两种 具体是什么原因可以根据App的情况来判断。 1 .如果你的定位功能并没有实现,也就是无法定位到当前的位置(一直...

Android开发之服务连接泄露异常

写了个Android service,用来完成一些耗时的网络IO和远程设备连接。在Activity中,先用startService( )启动服务,然后调用bindService( )将Activity...

android.app.ServiceConnectionLeaked: that was originally bound here

04-19 10:37:08.163: E/ActivityThread(302): android.app.ServiceConnectionLeaked: Activity com.remote....

Activity com.example.mymapdemo.MainActivity has leaked ServiceConnection com.baidu.location.Locati

07-21 10:23:28.153: E/dalvikvm(17264): GC_CONCURRENT freed 1143K, 17% free 7813K/9351K, paused 2ms+2...

百度地图api android sdk leaked ServiceConnection com.baidu.location.LocationClient错误

最近在百度地图api 的android sdk , 下载了官方的例子运行,一切正常,然后参照定位图层写了个程序一运行,出现了以下错误: 03-29 15:36:52.300: E/ActivityT...

环信 easeui导入 问题

环信的 easeui导入遇到的一些问题

android service生命周期

1、Android service如果是由activity bindService启动,则service自己的onCreate(),onBind(),onServiceConnected()按照这个顺...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)