질문은 제목 그대로입니다만... 
Popup Window 대신으로 AlertDialog 를 이용하려 합니다.
Develope.android.com 에서 참조해서 코드를 만들었는데, 객체 생성 조건에 대해 이해가 안 되는 부분이 있어 질문 올립니다.

설명을 쉽게 하기 위해 예제 코드를 작성했습니다.
---------------------------------------------------
public class list1 extends ListActivity {
...
AlertDialog.Builder msgPopup = null; // 전역( ? ) 객체 선언
AlertDialog msgPopupAlert = null; // Alert 객체 선언?
...

@Override
public void onCreate( Bundle savedInstanceState ) {
super.onCreate(savedInstanceState);
setContentView( ... );
...
onClick() {
foo( "msg1" );
}
...
}

protected void foo( String msg )
{

if ( null == msgPopup ) {
msgPopup = new AlertDialog.Builder( this );
msgPopup.setPositiveButton(
"Close", new DialogInterface.OnClickListener() {
public void onClick( DialogInterface dialog, int id ) { dialog.dismiss(); };
}
);
}
msgPopup.setMessage( msg );

if ( null == msgPopupAlert ) {
AlertDialog msgPopupAlert = msgPopup.create();
}
}
}

위와 같이, 예를들어 조건에 따라 여러번 popup 이 생긴다고 할 때 ( foo() 함수 ),
popup이 보일때 이게 여러번 create되지 않고,
Activity의 전역(?)에 객체를 선언해서
만약 객체가 미리 선언되었다면 다시 Create하고 싶지 않았습니다.
그런데,
예문을 보니 AlertDialog는

new AlertDialog.Builder( this );

AlertDialog msgPopupAlert = msgEnlargePopup.create();

이렇게 Builder 와 Creater 의 두개(?) 가 있더라구요?

그럼, 위와 같이 사용하면 Popup Window가 항상 create 안 되게 할 수 있는건가요?
아니면 원래 Popup() 이란 게 dismiss() 되면 메모리에서 해제되기 때문에 반드시 매번 create() 해 줘야 되는 건가요?

해답을 아시는 분들깨서는 답변주시면 대단히 감사하겠습니다.
그럼, 좋은 주말 되시기 바랍니다.

여름철 메뚜기가 마냥 부러운 1人