Android - 即使在方法完成后,侦听器对象如何不被销毁?

Android - How listener object is not destroyed even after the method is finished?

在 android (java) 中,如果我在方法中声明任何 variables/objects 引用,它会在方法完成后从堆栈中删除。

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

代码:

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

}

"If I declared any variables/objects reference inside the method, it is removed from stack after the method is finished."

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