//===========================================================
    // 스케쥴러 (모니터링)  10초마다 진행.
    //============================================================
   
    final Handler mHandler = new  Handler() {

      public void handleMessage(Message msg) {          
      
       int nowpage = flipper.getDisplayedChild();     
      
       if(nowpage == 0){ //현재 페이지 따른 connection. 0:center , 1:call , 2:person, 3:system
        Connect_center();
       }else if(nowpage == 1){
        Connect_call();
      }else if(nowpage == 2){
        Connect_person();
       }else if(nowpage == 3){
        Connect_system();
       }
          
       }
    };
   
    TimerTask myTask = new TimerTask(){     
       public void run(){
        Message msg = mHandler.obtainMessage();
         mHandler.sendMessage(msg);
        
       }      
     }; 

     Timer timer = new Timer();    
    
  
    
    
     @Override
    public void onCreate(Bundle savedInstanceState) {   //메인 함수..
       
  super.onCreate(savedInstanceState);       
        setContentView(R.layout.main);    
        
        // 그 외 내용. .텍스트뷰 및 등등 포함

 
  
  //========================================================================================
  // 백그라운드 처리 ( 플리퍼 Next 데이터 로딩 중)
  //==========================================================================================
  
  private class Next_handler extends AsyncTask<String, Integer, Long>
    {
      @Override
      protected void onPreExecute()  // 진행중 다이얼로그 박스 보여줌
      {
        super.onPreExecute();
        showDialog(PROGRESS_DIALOG);
      }
      
      @Override
      protected Long doInBackground(String...params)   // 백그라운드 실제 작업 처리
      {
       String page = new String(params[0]);
       int result = 0;
     
       if(page.equals("center")){
        Connect_center();      
       }else if(page.equals("call")){
        Connect_call();       
       }else if(page.equals("person")){
        Connect_person();      
       }else if(page.equals("system")){
        Connect_system();      
       }else{
       
       }
      
       return Long.valueOf(result);
      }
   
      @Override
      protected void onPostExecute(Long result)  // 작업후 처리
      {
        super.onPostExecute(result);
        progressDialog.dismiss();      // 다이얼로그 박스 삭제    
       
        int rslt = result.intValue();
       
        if(rslt == 0){
         flipper.showNext(); 
        }
      }
    }
   
  //========================================================================================
  // 백그라운드 처리 ( 플리퍼 Previos 데이터 로딩 중)
  //==========================================================================================
   
  private class Previos_handler extends AsyncTask<String, Integer, Long>
     {
       @Override
       protected void onPreExecute()  // 진행중 다이얼로그 박스 보여줌
       {
         super.onPreExecute();
         showDialog(PROGRESS_DIALOG);
       }
       
       @Override
       protected Long doInBackground(String...params)   // 백그라운드 실제 작업 처리
       {
        String page = new String(params[0]);
        int result = 0;
      
        if(page.equals("center")){
         Connect_center();  //  ui와 db connect 포함.
        }else if(page.equals("call")){
         Connect_call();       
        }else if(page.equals("person")){
         Connect_person();      
        }else if(page.equals("system")){
         Connect_system();      
        }else{
        
        }
       
        return Long.valueOf(result);
       }
    
       @Override
       protected void onPostExecute(Long result)  // 작업후 처리
       {
         super.onPostExecute(result);
         progressDialog.dismiss();      // 다이얼로그 박스 삭제    
        
         int rslt = result.intValue();
        
         if(rslt == 0){
          flipper.showPrevious(); 
         }
       }
     }
}

아침에 가르쳐 주신 대로 어싱크 태스크를 사용하여 구현했습니다. 잘되는 가 싶더니 어느 순간....

 

06-08 05:26:25.082: WARN/System.err(441): android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.

06-08 05:26:25.082: WARN/System.err(441):     at android.view.ViewRoot.checkThread(ViewRoot.java:2802)

06-08 05:26:25.092: WARN/System.err(441):     at android.view.ViewRoot.invalidateChild(ViewRoot.java:607)

06-08 05:26:25.092: WARN/System.err(441):     at android.widget.TextView.setText(TextView.java:2688)

이런 멘트가 계속 나오네요...ㅠㅠ

모니터링이라고 계속 해서 10초 주기로 도는데 중간에 핸들러랑 겹치게 되면 이런 현상이 일어나는건가요ㅜㅜ

아님 단순히 핸들러를 여러개 사용해서 그런가요?ㅠㅠ

방법이 없을까요???