gpt4 book ai didi

android - 我应该在 Singleton 类中处理一次性用品吗(Android RxJava 2)

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:15:33 26 4
gpt4 key购买 nike

当我 subscribe({}) 到单例类中的 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
})

}

subscribe() 方法返回一个 Disposable

我的主要问题是:我是否需要调用 dispose()?因为我认为我只能在应用程序完成或终止时调用它,这是没有必要的。

最佳答案

这里(可能)更大的问题是您的单例在 Android 组件的生命周期之外进行工作。如果您的单例是静态的或由您的 Application 托管,那么当您的应用程序处于后台时,它可能会突然终止。如果这不是问题,那么你的问题的答案是不,你不需要处理你的订阅。但是,你仍然应该警惕当你的应用程序在后台运行时工作,除非用户期望它。 (如果他们这样做,它可能应该在 Service 中或按计划运行。)Application 和 VM 可以在用户认为应用程序是“关闭”,过多的资源消耗可能导致差评和卸载。

关于android - 我应该在 Singleton 类中处理一次性用品吗(Android RxJava 2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51474991/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com