微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – android.app.ServiceConnectionLeaked:Activity … MainActivity泄露了ServiceConnection … MainActivity $1 @ e794142最初绑定在这里

它的失败@下线 –
bindService(intent,m_serviceConnection,Context.BIND_AUTO_CREATE);

以下是追踪….

Activity com.example.alwaysrunningprocesswithcallanswertap.MainActivity has leaked ServiceConnection com.example.alwaysrunningprocesswithcallanswertap.MainActivity$1@e794142 that was originally bound here
android.app.ServiceConnectionLeaked: Activity com.example.alwaysrunningprocesswithcallanswertap.MainActivity has leaked ServiceConnection com.example.alwaysrunningprocesswithcallanswertap.MainActivity$1@e794142 that was originally bound here
    at android.app.LoadedApk$Servicedispatcher.<init>(LoadedApk.java:1077)
    at android.app.LoadedApk.getServicedispatcher(LoadedApk.java:971)
    at android.app.ContextImpl.bindServiceCommon(ContextImpl.java:1774)
    at android.app.ContextImpl.bindService(ContextImpl.java:1757)
    at android.content.Contextwrapper.bindService(Contextwrapper.java:539)
    at com.example.alwaysrunningprocesswithcallanswertap.MainActivity.onCreate(MainActivity.java:48)
    at android.app.Activity.performCreate(Activity.java:5990)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
    at android.app.ActivityThread.performlaunchActivity(ActivityThread.java:2278)   
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390)
    at android.app.ActivityThread.access$800(ActivityThread.java:151)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:135)
    at android.app.ActivityThread.main(ActivityThread.java:5257)
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)

MainActivity.class

public class MainActivity extends Activity 
{
    CallNotifierService m_service;
    boolean isBound = false;

    private ServiceConnection m_serviceConnection = new ServiceConnection() 
    {
        @Override
        public void onServiceConnected(ComponentName className,IBinder service) 
        {
            m_service = ((CallNotifierService.mybinder)service).getService();
            Toast.makeText(MainActivity.this,"Service Connected",Toast.LENGTH_LONG).show();
            isBound = true;
            Intent intent = new Intent(MainActivity.this,CallNotifierService.class);
            startService(intent);
        }

        @Override
        public void onServicedisconnected(ComponentName className) 
        {
            Toast.makeText(MainActivity.this,"Service dis-connected",Toast.LENGTH_LONG).show();
            m_service = null;
            isBound = false;
        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Intent intent = new Intent(this,CallNotifierService.class);
        bindService(intent,Context.BIND_AUTO_CREATE);
    }

    .
    .
    .

}

解决方法

您需要在代码添加它.
@Override
protected void onDestroy() {
    super.onDestroy();
    unbindService(m_serviceConnection);
    Toast.makeText(MainActivity.this,"Service Un-Binded",Toast.LENGTH_LONG).show();
};

原文地址:https://www.jb51.cc/android/126935.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐