Acitivy可以通过实现ServiceConnection接口(通过匿名类或者内部类实现),在onServiceConnected(ComponentName name, IBinder service)中获得代理类的对象,然后就可以通过这个代理对象来调用代理类里的方法了。而在Service中我们要新建一个内部类继承自Binder,这个类就是我们所谓的代理类了,被调用的方法就是在这个代理类中实现的了。值得一提的是,我们的代理对象是要通过Service中的onBind方法中返回的。
今天碰到一个问题AndroidStudio提示Activity hasleaked ServiceConnection 的警告,提示我们需要在onDestroy方法中调用unBindService方法。