2011-08-22 2 views
0

나는 안드로이드 용 게임을 작성 중이며 플레이어가 사망 할 때마다 작은 점수 대화 상자를 통해 고득점 목록에 이름을 적어야합니다. 그러나 게임 루프는 계속해서 실행되며, 나는 그렇게 유지하고 싶습니다. 하지만 루프가 대화를 차단하고있는 것처럼 보입니다. 또한 다시 시작을 누르면 게임이 다시 시작되지만 사용자 입력은 무시됩니다. 잠시 후 "이 앱이 응답하지 않습니다 ..."라는 메시지가 나타납니다. 주요 활동으로 호출응용 프로그램이 응답하지 않습니다

코드

public static boolean addHighScore(int score) { 
if (mHiScores != null) { 
    if (mHiScores.checkIfFits(score)) { 
    if (Looper.myLooper() == null) 
     Looper.prepare(); 
    mCurScore = score; 
    mTextDialog.show(); 
    return true; 
    } 
} 
return false; 
} 

PS : 그의 = 그/그녀의 그가 = 그/그녀 등

편집 : 그건 정말 아닌 경우 경고 대화 상자가 표시되지 않습니다 분명히 나타났다.

답변

1

addHighScore 함수가 포함 된 새 스레드를 시작할 수 있습니다. 이것은 게임을 멈추지 않고 백그라운드에서 실행할 수 있습니다. 또한 사용자가 자신의 이름을 삽입하면 스레드가 종료되고 스레드가 제공 한 데이터로 게임을 다시 시작할 수 있습니다. 그냥 생각.

0

UI 스레드의 스레드가 제공 한 데이터를 표시하려면 스레드를 사용하지 마십시오. AsyncTask를 대신 사용하십시오.

관련 문제