안녕하세요. 꼬룡입니다.
바로 질문드리겠습니다.
static 리턴 aa (){
Intent i = new Intent("com.google.andoird.c2dm.intent.REGISTER");
i.putExtra("app",PendingIntent.getBroadcast(this, 0,new Intent(), 0));
i.pusExtra("sender", "구글 메일");
startService(i);
//토큰 취득
while (!getToken()) {
//TODO : 수행로직 ( c2dm전달받은 토큰사용)
}
}
기존에 잘 돌아가던 로직을 합쳐서 밖으로 빼내는 작업을 하다보니.
위와 같이 구조가 만들어 졌습니다.
그런데 c2dm에서 register로 날아오는 토큰이 aa() 메소드가 종료가 되야 들어오는 현상이 생기더라고요..
저위의 startService 부분을 쓰레드,혹은 핸들러로 실행해도 호출된 메소드가 종료되야 토큰이 들어옵니다.
궅이 이렇게 만든이유는 수행로직단의 값을 리턴해야되서 수행부분은 핸들러나 쓰레드로 돌리지 않았고요,
startService부분은 예외처리 부분(혹은 최초1번 실행)으로 토큰이 없을때 다시 호출하게 만든 부분입니다.
뭐. 선언부분과 동작부분은 세세하게 작성하지 않았지만 따로 호출해서 사용하면 잘 실행 됩니다.
꼭 .. 궅이 위와 같이 실행 해서 하려면 어떻게 처리를 해야될까요?
아 그리고종료 되야 토큰이 들어오는 현상은 BroadcastReceiver특성인가 c2dm 특성인가요?
현명하신 답변부탁드립니다.
ps. 우선은 인텐드 부분을 따로 호출한 후 aa()를 호출하여 동작은 잘되고 있습니다.




ㅜㅜ...답글좀 달아주시지;;;