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

안드로이드 service에서 thread를

0 추천
@Override
 public int onStartCommand(Intent intent, int flags, int startId){
  //thread.start();
  //onGra();
  //inDb3();
  
  thread2 = new Thread(new Runnable(){
   @Override
   public void run(){
    while (true) {
     try {
      inDb3();
      Thread.sleep(10000);
     } catch (InterruptedException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
     }
     
     thread2.start();
    }
   }  
  });
  
  return START_STICKY;
 }

이렇게 10초마다 반복 실행을 하려고 했는데

아예 한번도 실행이 안되네요.

inDb3() 에는 일단은 Toast 띄우는것만 넣어놔서 inDb3() 에 문제가 있지는 않구요.

구문이 틀린건가요?

개님의습성 (2,500 포인트) 님이 2013년 7월 16일 질문

2개의 답변

+2 추천
 
채택된 답변
왠지 구문이..

스레드2를 스레드2 안에서 시작되게 해 놓으신것 같은데..

이러면 최초 호출이 없으니 당연히 한번도 실행이 안 되겠지요.

스레드 선언문 밖에서 시작하셔야 합니다.
퐁풍 (8,740 포인트) 님이 2013년 7월 16일 답변
개님의습성님이 2013년 7월 16일 채택됨
+2 추천
네~~! 쓰레드 자체를 시작을 안하시니 실행을 안할수 밖에요~~!

잘 보시면 쓰레드 스타트 함수가 쓰레드 안에 위치 하고있습니다.

스타트 하지 않은 쓰레드 네에 스타트 함수가 있는데 실행 될 수가 없겠죠???
ThisPlus (46,920 포인트) 님이 2013년 7월 16일 답변
...