마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

푸시 동작 문의 드립니다.

0 추천

안녕하세요.

아래의 소스와 같이 발송을 하고 있습니다.

유저리스트를 가지고 와서 for 문으로 돌려 발송요청을 합니다.

그리고 성공하면 "발송성공"이라고 콘솔에 찍어주고 있습니다.

그리고 for문이 끝나면 DB에 발송완료라고 값을 변경해 주는데요.

이상한게 분명 디비에는 false로 들어가 있는데 콘솔에는 계속 "발송성공"이라고 올라오고 있습니다.

아무리봐도 너무 이사해서 혹 GCM에 깊은 뜻이 있는지 몰라 이렇게 문의를 드립니다.

조언 부탁드립니다.

 

 

 

for(int j=0; j< userInfoList.size(); j++){//발송 유저 리스트
  User userInfo = (User)userInfoList.get(j);

  // 단말 API KEY
  String myApiKey = ".....";
  int retries = 5;  //재시도횟수	

  Sender sender = new Sender(myApiKey);

  // 전달 메시지 셋팅
  Message message2 = new Message.Builder()
    .timeToLive(1800)       //메시지 소멸까지 걸리는 시간
    .delayWhileIdle(false)  //메시지 과부하시 대기유무,기본은 트루
    .addData("type","1")
    .addData("title", URLEncoder.encode("어플명","UTF-8"))
    .addData("msg", URLEncoder.encode(pushInfo.getContents(), "UTF-8"))
    .addData("ticker", URLEncoder.encode(pushInfo.getContents(), "UTF-8"))
    .build();

  Result result;  
  try{
    result = sender.send(message2, userInfo.getDeviceToken(), retries);
    if (result != null) {
      //결과 처리
      if(result.getMessageId() != null) {
        //푸시 전송 성공
      }
    } else {
      String error = result.getErrorCodeName();
      System.out.println("[ERROR]"+error);
    }

    System.err.println("발송성공");
  } catch (IOException e) {
    e.printStackTrace();
  }
}


//발송전달후 DB에 발송완료로 변경
pushUseCdUpdate(false);

 

등가교환 (1,110 포인트) 님이 2013년 12월 20일 질문

1개의 답변

0 추천

결과 비교 부분이 문제가 있어 보이는데요.

Result result;
try{
	result = sender.send(message2, userInfo.getDeviceToken(), retries);
    if(result != null) {
    	//결과 처리
    	if(result.getMessageId() != null) {
    		//푸시 전송 성공
    		System.err.println("발송성공");
    		pushUseCdUpdate(false);
    	}
    	else {
    		String error = result.getErrorCodeName();
    		System.out.println("[ERROR]"+error);
    	}
    }
}catch (Exception e) {
	// TODO: handle exception
	e.printStackTrace();
}

 

이렇게 되어 있어야 되지않나요;

 

얼룩돼지 (15,720 포인트) 님이 2013년 12월 20일 답변
빠른 답변 감사합니다.
DB 테이블이 발송테이블과 회원테이블로 나누어저 있어 그렇게 처리를 하였습니다.
...