RxService

发布于 2017-10-16  2.21k 次阅读


Android Service 绑定获取句柄,都挺麻烦的,每次都要经历这样的代码

@Override
    protected void onStart() {
        super.onStart();
        // Bind to LocalService
        Intent intent = new Intent(this, LocalService.class);
        bindService(intent, mConnection, Context.BIND_AUTO_CREATE);
    }

    @Override
    protected void onStop() {
        super.onStop();
        // Unbind from the service
        if (mBound) {
            unbindService(mConnection);
            mBound = false;
        }
    }

这样总感觉很麻烦。能不能用Rxjava的访问,订阅绑定,自动取消绑定?

于是,有了RxService这个库,这个库也参考了其他人的事情,做了部分优化。

引入方法

dependencies {
    compile 'com.jiechic.android.library:rxservice:1.0.0'
}

强制需求
因为适配比较新,必须使用java8编译方可使用。

使用方法

RxService(this, ServiceHandler::class.java)
                .connectService()
                .map { IServiceHandler.Stub.asInterface(it) }
                .subscribe { Log.d(MainActivity::class.java.simpleName, it.sendAndGet("hello world")) }

源码地址

这个库还有提升的空间。只是看需求。