다음 코드로 인해 메모리 누수가 발생합니까? 본질적으로 setContentView()를 사용하여 응용 프로그램의 다양한 레이아웃간에 전환하고 레이아웃의 다양한 뷰 (버튼/텍스트 뷰 ...)에 대한 참조를 유지하는 내 액티비티의 멤버 변수가 있습니다.메모리 누수가 발생합니까?
액티비티 클래스에 버튼에 대한 참조가 있고 레이아웃을 변경하면 레이아웃이 여전히 버튼 참조를 보유하기 때문에 가비지 수집되지 않을 것이라고 생각합니다. 이 경우 레이아웃을 변경하기 전에 버튼 변수를 null로 설정할 수 있습니까?
감사합니다.
public class MyApp extends Activity {
private Button startBtn;
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
// Set main layout
setContentView(R.layout.main);
startBtn = (Button) findViewById(R.id.startBtn);
startBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
doStart();
}
});
}
private void doStart()
{
// Change to starting screen layout
setContentView(R.layout.begin);
/// .. Work with more views here and change layouts in a bit .. //
}
}