对活动/片段和垃圾收集中的视图的强引用

时间:2015-06-16 21:47:59

标签: android garbage-collection views strong-references

在一项活动中,我通常会保留对视图的强引用,以便每次我必须更新所述视图时都不需要findViewById(...)。在这样做时,活动最终看起来像这样:

SomeActivity extends Activity implements View.OnClickListener{

    private Button button;
    private TextView textView;    

    @Override
    public void onCreate(Bundle sIS){
        super.onCreate(sIS);

        this.button = (Button)findViewById(R.id.button);
        this.button.setOnClickListener(this);

        this.textView = (TextView)findViewById(R.id.
    }

    @Override
    public void onClick(View v){
        ...
    }
    ...
}

我的问题是,这些对带有回调的视图的强引用是否必须为空,或者将其OnClickListeners设置为null?或者GC是否能够看到整个层次结构已经死亡,而GC是整个层次结构?

1 个答案:

答案 0 :(得分:2)

  

我的问题是,这些对带回调的视图的强引用是否必须为空,或者将OnClickListeners设置为null?

没有

  

或者GC是否能够看到整个层次结构已经死亡,而GC是整个层次结构?

是的,假设此处没有其他内容引用(后台线程,静态数据成员等)。