提取功能(在许多活动/片段中重复执行),以便可以重复使用

时间:2019-06-22 11:52:45

标签: android function android-activity kotlin rx-android

我正在开发MVP项目。

在演示者中,我有此方法,很多演示者都可以调用此方法。

private fun getAccessToken(email: String) {
    view?.showProgress()
    authApi.getAccessToken()
        .subscribeOn(Schedulers.io())
        .observeOn(AndroidSchedulers.mainThread())
        .subscribe({ response ->
            view?.hideProgress()
            if(response != null) {
                localStorage.accessToken = response.accessToken
                localStorage.refreshToken = response.refreshToken
                localStorage.expireIn = response.expireIn

                //CODE WHICH GOES HERE DIFFER IN EACH ACTIVITY

            } else {
                handleError(response)
            }
        }, {
            view?.hideProgress()
            handleError(it)
        }).also {}
}

当前,我将复制此方法粘贴到需要它的每个活动/片段/演示者。无可否认这是臭代码。

如何将此功能提取到BaseActivity / BaseFragment类,以便函数声明始终在一个地方?

我还如何将下一个函数传递给方法,以便在函数完成后调用该下一个函数?

我正在使用Kotlin。有一些概念,例如扩展功能,可以在这里使用类似的东西。

0 个答案:

没有答案