将传递lambda到Observable.subscribe in kotlin导致内存泄漏?

请参阅以下kotlin代码:

class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { val disposable = Observable.interval(1, TimeUnit.SECONDS, AndroidSchedulers.mainThread()) .subscribe { textView.text = it.toString } } } 

在这里,我正在传递一个lambda表达式,而不是一个匿名的内部类。 那么是否需要调用disposable.dispose()以防止内存泄漏? 或者,lambda表达式不会保留对MainActivity类的实例的隐式引用。

如果我确实需要处理它,那么最好的方法是什么?为什么?

我向Observable.subscribe()添加了一个记录器,如下所示:

 class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { val disposable = Observable.interval(1, TimeUnit.SECONDS, AndroidSchedulers.mainThread()).subscribe { Log.d(TAG, "Interval:" + it.toString()) textView.text = it.toString } } } 

并注意到,即使退出应用程序后按下后退键,观察继续运行。 所以我将下面的代码添加到onDestroy()中:

 override fun onDestroy() { disposable.dispose() super.onDestroy() } 

现在一切都按预期工作