마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

액티비티 화면갱신(새로고침) 질문입니다. 도와주세요

0 추천

현재 안드로이드 게임을 만들고있습니다. 이제 알고리즘 거의다 구현된거같아서 세부 설정을 하고있습니다. 

 
지금 구현한 코드로는 게임진행 도중에서 화면갱신이 안이루어지고 다시 제 차례로 돌아올때 화면이 바뀝니다.
 
설명을 드리자면 
 
사용자  컴1 컴2 컴3 의 순서데로 게임이 진행되며 각 차례마다 알고리즘이 수행됩나다 (사용자 알고리즘은 조금 달라요)
 
각체례때 마다 차례가 끝날때 그 차례에서 한 행동(때렸다,막았다,피했다등)을 이미지,텍스트로 띄워줍니다
약 2초간 멈춥니다( 이미지를 보여주기위해서) SystemClock.sleep을 썻습니다
다음 차례로 넘어가면서 이미지는 사라집니다 
 
다시 다음차례가 끝날때 그차례에서 한 행동을 이미지로 띄워줍니다. (반복)
 
현재 제가 구현한 방법이 
 
onClick 에 사용자 차례일때 행동(버튼클릭) 을 코딩했습니다. 
onClick  마지막에 Computer(); 로 컴퓨터차례 메소드를 불러줍니다. Computer() 마지막에 Computer2();를 불러주는식으로해서  마지막 Computer3(); 로 끝이납니다.(이때 화면이 바뀝니다.
(ex) 처음에Hp가 100이었다면 여기에서 90으로 줄어든게 표시됩니다.)
 
Computer() 내부에서는 
 
tx1.setText(Integer.toString(mouse));
SystemClock.sleep(2000);  
 
이렇게해서 텍스트뷰에 값을 보내주고 2초간 정지시키는데 실제화면에서는 컴퓨터 메소드 실행간에는 텍스트뷰값이 변경이없고 제 차례로 돌아올때 바뀝니다.
 
구글링을 해보니 onResume 이라는 함수가 백그라운드로 실행되는데, 이게실행될때 화면이 바뀌는거라고하는데 
그렇다면 강제로 중간에 화면을 갱신하는 방법은 없나요?? ㅠㅠ 
아시는분 계시면 조언좀 부탁드려요
 
멜랑꼴후 (120 포인트) 님이 2013년 6월 6일 질문

1개의 답변

0 추천
SystemClock.sleep이라는게 어플 자체를 슬립시키지는 않나요?
혹시모르니 핸들러를 써보시면 어떨까요.
예를들어 
스레드.슬립하면 프로그램 자체가 멈추어지는데 요걸
Handler handler = new Handler();
handler.postDelayed(new Runnable()
{
@Override
public void run()
{
 
}
}, 2000);
이렇게 하면 해당 값만 슬립이되는거 같은데.
  (11,920 포인트) 님이 2013년 6월 6일 답변
...