안드로이드 개발 질문/답변
(글 수 45,052)
제목그대로 thread에서 sleep을 사용해서 1초간격으로 토스트메시지를 차례대로 띄우고 다음handler로 넘기려하는데 먹히지가 않습니다.. if문 첫번째것만 수행되고 멎어버리네요.. 그래서 if문을 for문으로 감싸면 되긴되는데 sleep 그렇게하면 thread.sleep(1000)이 먹히질 않습니다..ㅠㅠ왜이럴까요??
main_thread = new Thread(new Runnable()
{
public void run()
{
int i=0;
if(i==0){
main_toast.setView(third_layout);
main_toast.show();
}
else if(i==1){
main_toast.setView(second_layout);
main_toast.show();
}
else if(i==2){
main_toast.setView(start_layout);
main_toast.show();
}
else {
mHandler.sendEmptyMessage(0);
}
i++;
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
{
public void run()
{
int i=0;
if(i==0){
main_toast.setView(third_layout);
main_toast.show();
}
else if(i==1){
main_toast.setView(second_layout);
main_toast.show();
}
else if(i==2){
main_toast.setView(start_layout);
main_toast.show();
}
else {
mHandler.sendEmptyMessage(0);
}
i++;
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
main_thread.start();
//끝
//else 에서 넘어옴
Handler mHandler = new Handler(){
@Override
public void handleMessage(Message msg){
super.handleMessage(msg);
mHandler.sendEmptyMessageDelayed(0, 1000);
@Override
public void handleMessage(Message msg){
super.handleMessage(msg);
mHandler.sendEmptyMessageDelayed(0, 1000);
.......
}
맨위처럼 스레드 시작을하고 else문을 이용하여 핸들러로 넘어가는건데 잘못사용하고있는건가요..?애초에 스레드가먹히질않으니..ㅠㅠ
맨위처럼 스레드 시작을하고 else문을 이용하여 핸들러로 넘어가는건데 잘못사용하고있는건가요..?애초에 스레드가먹히질않으니..ㅠㅠ




위에 코드는 당연히
위에 if문 다 실행후, Thread에 sleep거니까 안되지요.