@Override
    public void onStart(){
        super.onStart();
       
        Log.e(TAG, "@@ onStart @@");
        dialog = new ProgressDialog(this);
        dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
        dialog.setMessage("시간을 가져오는 중입니다...");
        dialog.setButton("취소", new DialogInterface.OnClickListener(){
            @Override
            public void onClick(DialogInterface dialog, int which){
                dialog.dismiss();
            }
        });
        dialog.show();
    }
   
    private static String MSG = "";
   
    protected void Listview(){
        try{
            final Timer timer = new Timer();
            TimerTask time = new TimerTask(){
                @Override
                public void run(){
                    try{
                        MSG = BluetoothService.MESSAGE_DATA;
                        if(Integer.parseInt(MSG.substring(3, 6)) == 410 && MSG.lastIndexOf("@") != -1){
                            timer.cancel();
                            dialog.dismiss();
                        }
                        Log.e(TAG, "@@ MSG=" + MSG);
                    }catch(Exception e){
                        Log.e(TAG, "@@ error=" + e);
                    }
                }
            };
            timer.schedule(time, 0, 500);
           
            MSG = MSG.substring(6).replace("@", "").trim();
            StringTokenizer view = new StringTokenizer(MSG, "|");
           
            int count = Integer.parseInt(view.nextToken());
            BIN  = view.nextToken();
            Log.e(TAG, "@@ " + count);
           
            items = new ArrayList<String>();
           
            /**
             * 데이터 없을때 다이얼로그 출력
             * count = 0 : 데이터 없음
             */
            if(count == 0){
                String alertTitle = "알림";
                String buttonMessage = "GODUN에 저장된 데이터가 없습니다.";
                String buttonYes = "확인";
                new AlertDialog.Builder(DataList.this).setTitle(alertTitle).setMessage(buttonMessage).setPositiveButton(buttonYes, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Intent intent = new Intent(DataList.this, MainView.class);
                        startActivity(intent);
                        finish();
                    }
                }).show();
            }else{
                for(int i = 0; i < count; i++){
                    tok    = view.nextToken();
                    mYear  = "20" + tok.substring(0, 2);
                    mMonth = tok.substring(2, 4);
                    mDay   = tok.substring(4, 6);
                   
                    items.add(mYear + "-" + mMonth + "-" + mDay);
                }
            }
           
            listview = (ListView)findViewById(R.id.name);
            adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice, items);
            listview.setAdapter(adapter);
           
            listview.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
        }catch(Exception e){
            Log.e(TAG, "@@ error=" + e);
        }
       
    }
   
    @Override
    public void onResume(){
        super.onResume();
        Log.e(TAG, "@@ onResume @@");
        Listview();
        Log.e(TAG, "@@ onResume END @@");
    }

위와 같이 했는데요.
대충 내용은.  블루투스로 데이터를 메인에서 받아서 위 소스로 넘겨 줍니다..
넘겨주면서 변수를 타이머로 500ms로 업데이트 시켜서 완성이 되었을때 캔슬 시켜 줍니다.
문제는 완성이 되고나면 이머 onResume에서 END 로그가 찍혀서. 데이터가 안나타납니다.
제가 알고있는 방법을 다 동원하여 6시간 동안 헤매다가 올려봅니다. 좋은 답변 부탁드리겠습니다.