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

Thread를 도중에 중지할 수 있을까요?

0 추천

id run() {

  try {

    서버서버서버 접속접속

   데이터데이터

     switch(nNumber) {

     case INIT :

               !! 이 부분에서 INIT이면 아래 서버접속 데이터전송 부분을 실행하지 않고

                  나가게 하고 싶은데 방법이 있을까요? return;은 안되더라구요.

     break;

    case NUMBER :

             특별한 로직 실행 후 아래 서버 접속접속접속 데이터 전송전송 부분을 타야합니다.

           여기다가 서버 접속접속접속 데이터 전송전송 부분을 다 명시하면 되는데 소스가 길어지니까 ㅜㅜ

          여기는 한줄만 넣으면 되거든요... 값만 상황에 맞게 넣으면 되는 상황이라서...

 

     break;

    case PERIOD:

             특별한 로직 실행 후 아래 서버 접속접속접속 데이터 전송전송 부분을 타야합니다.

           여기다가 서버 접속접속접속 데이터 전송전송 부분을 다 명시하면 되는데 소스가 길어지니까 ㅜㅜ

          여기는 한줄만 넣으면 되거든요... 값만 상황에 맞게 넣으면 되는 상황이라서...

     break;

 } // end switch

   서버 접속접속접속 데이터 전송전송

 } // end try

} // end Thread

 

결론적으로 INIT에서는 그냥 아래서버 접속접속접속 데이터 전송전송 부분을 타지 말고

Thread가 끝나야 하는 것이고, 

나머지 NUMBER, PERIOD는서버 접속접속접속 데이터 전송전송송 부분을 타야 하는 부분이라서

위에 명시해놨듯이 그냥 서버 접속접속접속 데이터 전송전송 이것을 NUMBER, PERIOD

Case 구분에 다 넣어버리면 되지만 그러면 소스가 많이 길어져서 ....

 

INIT일 때만 Thread 서버 접속접속접속 데이터 전송전송을 실행하지 않도록 하는 방법이 뭐가 있을까요?

Goni2 (770 포인트) 님이 2015년 4월 16일 질문

2개의 답변

0 추천
 
채택된 답변

1. run() 초입부에 flag 변수 하나 만들고

2. INIT일때만 false로 만든다음

3. 맨 마지막에 flag 변수 체크해서 서버접속 하거나 하지 않거나 처리

 

 try {

   boolean sendData = true;

    서버서버서버 접속접속

   데이터데이터

     switch(nNumber) {

     case INIT :

             sendData = false;

               !! 이 부분에서 INIT이면 아래 서버접속 데이터전송 부분을 실행하지 않고

                  나가게 하고 싶은데 방법이 있을까요? return;은 안되더라구요.

     break;

    case NUMBER :

             특별한 로직 실행 후 아래 서버 접속접속접속 데이터 전송전송 부분을 타야합니다.

           여기다가 서버 접속접속접속 데이터 전송전송 부분을 다 명시하면 되는데 소스가 길어지니까 ㅜㅜ

          여기는 한줄만 넣으면 되거든요... 값만 상황에 맞게 넣으면 되는 상황이라서...

 

     break;

    case PERIOD:

             특별한 로직 실행 후 아래 서버 접속접속접속 데이터 전송전송 부분을 타야합니다.

           여기다가 서버 접속접속접속 데이터 전송전송 부분을 다 명시하면 되는데 소스가 길어지니까 ㅜㅜ

          여기는 한줄만 넣으면 되거든요... 값만 상황에 맞게 넣으면 되는 상황이라서...

     break;

 } // end switch

if (sendData) {

   서버 접속접속접속 데이터 전송전송

 }

 } // end try

} // end Thread

 

이해 되셨나여?

Gradler (109,780 포인트) 님이 2015년 4월 16일 답변
Goni2님이 2015년 4월 30일 채택됨
0 추천
run() {

try {

while(true) {

// your code

// your code

// your code

Thread.sleep(1);

}

}

} cache (Exception e) {

// your code

}

}

 

 

kill thread

yourthread.interrupt();
aucd29 (218,390 포인트) 님이 2015년 4월 16일 답변
...