我有一个可以像这样扩展基本Activity的Activity:
class MainActivity : BaseActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
getInfo("Pojo")
}
}
我的基本活动对API进行了一些访问,并返回答案,如下所示:
abstract class BaseActivity : AppCompatActivity() {
companion object {
@JvmStatic var compositeDisposable: CompositeDisposable?=null
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
compositeDisposable = CompositeDisposable()
}
override fun onDestroy() {
super.onDestroy()
compositeDisposable?.clear()
}
fun getTvShows(query: String) {
compositeDisposable?.add(
ApiClient.getClient.getTV(Params.getParamsSearch(1, query))
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
.subscribe(this::handleResponseTvShows)
)
}
private fun handleResponseTvShows(result: ObjectsSearchTVShows) {
//Need to send result back to MainActivity or any activity that extends BaseActivity
}
}
我需要将结果发送回MainActivity或任何扩展BaseActivity的活动,如何实现呢?
答案 0 :(得分:0)
制作handleResponseTvShows
abstract
和protected
:
protected abstract fun handleResponseTvShows(result: ObjectsSearchTVShows)
并在MainActivity
中实施:
override protected fun handleResponseTvShows(result: ObjectsSearchTVShows) {
// process the result here
}