Android-侦听器对象如何即使在方法完成后也不会被破坏



在android(java(中,如果我在方法内部声明了任何变量/对象引用,那么在方法完成后,它就会从堆栈中删除。

但是,如果我在一个方法中注册了click监听器,那么即使在该方法完成后,它也是如何被调用的。

代码:

public void init() {
Button btn = findViewById(R.id.btn);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
}):
}

"如果我在方法内部声明了任何变量/对象引用在该方法完成后从堆栈中删除">

这是不正确的。如果您创建任何对象,它们都会保留在中,直到被垃圾收集。如果有对它们的引用——比如说,对存储的侦听器的引用——那么它们会一直持续到这些引用消失。

最新更新