1

在一项活动中,我通常会保留对视图的强引用,以免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 是否设置为空?还是 GC 能够看到整个层次结构已经死了,而 GC 就是全部?

4

1 回答 1

2

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

不。

还是 GC 能够看到整个层次结构已经死了,而 GC 就是全部?

是的,假设这里没有其他东西引用任何东西(后台线程、静态数据成员等)。

于 2015-06-16T21:49:09.217 回答