2012-09-10 4 views
3

특정 순서로 실행해야하는 "유효성 검사"코드가 두 개 있지만 onPostCreate() 이벤트의 코드가 onCreate() 이벤트를 사용하고 있으며 Preference Store와 관련이 있다고 생각됩니다.onCreate() 코드 전에 실행되는 Android - onPostCreate() 코드

일부 의사 코드는 설명 할 수

onCreate() 
{ 
    prefs = PreferenceManager.getDefaultSharedPreferences(this); 
    email = prefs.getString("email", "[email protected]").toString(); 
    if (email.equals("[email protected]")) 
    { 
    //user has not supplied email address, show alert dialog 
    warning(); 
    } 
} 

경고를()가 "OK"를 클릭하면 방법은 바로 사용자들이 이메일 주소를 입력 할 필요가 있음을 알리는 경고 대화 상자를 구축하고, 전자 메일 주소를 제공 할 수 있도록 기본 설정 작업을 시작합니다.

onPostCreate() 
{ 
    carrier = manager.getNetworkOperatorName(); 
    if(carrier.equals("SPRINT")) 
    { 
    //call web service to validate carrier compatibility 
    //if web service returns "FALSE" call warning2(); 
    } 
} 

warning2() 메소드는 warning()과 동일한 기능을 수행합니다. 사용자에게 통신 사업자가 호환되지 않는다는 것을 알리는 경고 대화 상자를 만듭니다.

onCreate()에서 warning()이 호출되고 onPostCreate()에서 warning2()가 호출 되더라도 현재 앱은 경고() 대화 상자 앞에 warning2() 대화 상자를 표시하고 있는데, 이유를 이해하지 못한다.

두 번째 유효성 검사에서 웹 서비스를 호출하고 첫 번째 유효성 검사에서 환경 설정 저장소를 확인하고 환경 설정 저장소에 액세스하기 전에 웹 서비스 호출이 완료 되었기 때문에 해당 작업이 수행 되었습니까?

첫 번째 유효성 검사 및 경고()가 두 번째 유효성 검사 및 경고 2() 전에 처리되도록하려면 어떻게해야합니까?

답변

1

먼저 warning2 대화 상자를 불러 오시겠습니까? 아니면 먼저 보시겠습니까? 대화 상자는 주 활동을 차단하지 않으므로 warning이 먼저 호출되지만 그 직후에는 warning2이 호출되어 첫 번째 대화 상자를 표시합니다. 따라서 경고 2가 표시되고 경고가 표시 될 때까지 경고가 표시되지 않습니다. 바로 아래에 계층화되어 있기 때문입니다.

+0

아, 좋은 지적입니다. 나는 warning()이 먼저 호출 되었다면 그 대화 상자가 모달 형식으로 표시되어 첫 번째 경고가 처리 될 때까지 warning2() 대화 상자를 표시 할 수 없다고 가정했다. – JMax2012

+0

고마워, 그게 무슨 일이야. Warning2()가 올바른 순서로 호출되고 있었는데 경고()보다 겹쳐서 표시되었습니다. 나는 그것을 잡았어야했다. 다시 한 번 감사드립니다! – JMax2012