2012-03-24 1 views
3

사용자가 활동 내에서 옵션 메뉴를 클릭하면 대화 상자를 표시하려고합니다. 먼저 Dialog 클래스를 사용하여이 작업을 수행하려고했습니다. 코드는 다음과 유사합니다.Dialog 클래스를 직접 인스턴스화하는 것이 왜 바람직하지 않습니까?

final Dialog d = new Dialog(this); 
d.setContentView(R.layout.customDialog); 
d.setTitle("Sample title"); 

data = (EditText) d.findViewById(R.id.data); 
button = (Button) d.findViewById(R.id.aButton); 
d.show(); 

button.setOnClickListner(new View.OnClickListner() { 
    // grab data from edittext and save it to some var 

    d.dismiss(); 
}); 

이런 식으로. dev 가이드는 Dialog 클래스를 직접 인스턴스화하지 않는다고 제안합니다. 이 접근법에 특히 나쁜 점이 있습니까?

답변

0

안드로이드 개발자 가이드는 개발자가 많은 처리 시간을 차지하는 작업을 피할 수 있도록 많은 추가 정보를 추가합니다. 직접 Dialog 클래스를 인스턴스화하는 것은 아마도 더 많은 처리 시간을 필요로 할 것입니다.

0

시스템은 대화 상자의 캐시를 유지하므로 사용자가 직접 관리하지 않아도됩니다. 각 대화 상자는 한 번만 생성되고 나중에 다시 사용할 수 있도록 어딘가에 저장됩니다. 대화 상자를 생성하는 것은 계산 상으로 비싸기 때문입니다. 이 시스템은 처음으로 필요한 대화 상자를 만들고 표시하기 바로 전에 준비하기위한 고리를 제공합니다.