AIDL로 서비스 내의 메소드를 이용해 데이타를 넣고 빼고 할려고 하거든요

일단 동작 자체는 잘 됩니다..

그런데 문제가.. 서비스의 데이타를 액티비티(클라이언트)의 내용 실행 후에 바인딩합니다
(위 설명이 이해가 되실지 모르겠습니다 ^^;; 아직 지식이 부족해서 좋은 표현 방법을 모르겠습니다)

ex) 실행순서
      1) 액티비티(클라이언트) 실행
      2) onCreate() 실행 => onStart() 실행 // 서비스 데이타 읽기 메소드는 onCreate 안에 선언되어 있습니다
      3) 서비스 연결
      4) 액티비티(클라이언트)에서 데이타 읽기 시도
      5) 서비스의 바인더 인터페이스 실행 및 반환

이렇습니다.. 위 순서는 로그값을 찍어보면서 확인한겁니다

서비스가 저장하고 있는 이름 데이타를 읽어오라는 iBind.getName() 을 onCreate() 안에 선언했는데
이상하게 실행은 onCreate() 의 다른 내용들을 다 실행한 후에 데이타를 읽어옵니다

책의 예제대로 버튼을 구현해서 클릭했을때 처리를 하라고 하면 이상없이 잘 뜨는데

사용자 액션을 기다리지 않고 바로 처리를 해버리면 위의 서비스 메소드를 실행하는 부분에서
NullPointerException이 발생됩니다

지금 만들고 있는게..
서비스에서 서버와 통신을 하면서 데이타를 주고 받고, 그 데이타를 이용해서 리스트뷰라든지 기타 여러가지 방법으로 다른 액티비티에서 보여주는겁니다
(소켓연결 후에 다른 액티비티로 넘어가니까 소켓연결을 유지 못해서 서비스를 구현중입니다)

버튼을 클릭한 후에 보여주는 것이 아니라.. 
실행하면 데이타 읽어오는 동안 프로그레스바를 보여주고 바로 해당 목록을 보여줄꺼거든요..

조언 좀 부탁드립니다 ㅡㅜ