어플리케이션 패키지 내부에 서비스 클래스를 생성해서
백그라운드로 데이터를 받아온 후 같은 패키지 안의 CP에 넣어주려고 합니다.

일단 서비스에서 쓰레드 생성하고 그 안에서 데이터를 받고 CP에 넣어주는 모든 액션을 구현을 하였습니다.

그런데 기기에서 돌려보니 서비스에 구현된 처리들이 다 끝나고서야 자원이 메인 UI로 돌아오는것 같이 보이더군요.

그러니까... 서비스 내부에 넣어둔 데이터 다운 후 저장 명령이 모두 종료될때까지 메인 UI가 얼어있었단 말입니다...

서비스 안에 쓰레드를 구현해서 실행한건데... 이런 현상이 일어나니 이해가 되지 않아 질문드립니다.


아래는 대략적인 모습입니다.


/// 서비스 실행 

protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  // TODO Put your code here

  setContentView(R.layout.mainact);
   
   startService(new Intent(BaseActivity.this,ReadingDaemon.class));
}


/// 서비스 클래스

public class ReadingDaemon extends Service {

@Override
 public int onStartCommand(Intent intent, int flags, int startId) {


  serviceStatus = true;
  
  Thread t = new Thread(null,r,"NewsDaemon");
  t.start();
  return START_STICKY;
}

private Runnable r = new Runnable(){

  Logger l = new Logger();
  ReadingDaemon RD;
  Handler me;
  ArrayList<NewsContainer> NC= new ArrayList(); 
  NewsContainer NCItems = new NewsContainer();

  private ArrayList<NewsContainer> dummyGenerator(){
    return NC;
  }
  
  
  @Override
  public void run() {
   // TODO Auto-generated method stub

      // 이미지와 메타데이터를 다운로드 받아서 CP를 통해 저장함
     }
  
  }


}



코드는 몇몇 부분 삭제해서 중요하지 않으니 대강 골격만 봐주시기 바랍니다.

그럼 지도부탁드립니다.