Ami*_*ndi 10 android dagger-2 rx-java2
当我subscribe({})在Singleton类中使用Observable时,我是否需要.dispose()在某个时候调用方法?如果是,何时何地?因为在应用程序运行之前将保留单例.像这样的东西(Kotlin):
@Singleton
class MySingletonClass @Inject constructor(
private val api: MyAPIManager
) {
fun fetchData() {
//subscribed inside the Singleton
api.service.getSomeDataFromAPI()
.toRxObservable()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe({
//do something internally with response
},
{
//handle error internally
})
}
Run Code Online (Sandbox Code Playgroud)
该subscribe()方法返回一个Disposable.
我的主要问题是:我需要打电话dispose()吗?因为我认为我只能在应用程序完成或被杀时调用它,这是没有必要的.
这里(可能)更大的担忧是您的单例正在 Android 组件的生命周期之外进行工作。如果您的单例是静态的或由您的 托管Application,那么当您的应用程序在后台时它可能会突然终止。如果这不是问题,那么您的问题的答案是否定的,您不需要处置您的订阅。但是,当您的应用程序在后台运行时,您仍然应该谨慎对待工作,除非用户期望这样做。(如果这样做,它可能应该在Service或按计划运行。)Application在用户感知应用程序“关闭”后,虚拟机可以持续很长时间,并且过多的资源消耗可能会导致不良评级和卸载。
| 归档时间: |
|
| 查看次数: |
1494 次 |
| 最近记录: |