2013-01-03 2 views
0

내 응용 프로그램을 GCM과 통합했습니다. 기기에 필요한 업데이트가 있는지 확인하는 제 3 자 서버를 설정합니다 (예인 경우). 모바일 애플리케이션에 새로운 데이터를 요청하기 위해 GCM을 간지럼으로 전송합니다.불필요한 GCM 메시지를 방지하는 방법은 무엇입니까?

내 안드로이드 응용 프로그램에 로그온/로그 오프 동작이있는 인증 모듈이 있습니다. 그리고 사용자의 현재 세션이 활성화되어있는 동안에 만 서버 데이터 동기화 (GCM 메시지 등)를 계획합니다.

그러나 tutorial에서 알 수 있듯이 기기의 Android 애플리케이션을 실행하지 않아도 메시지를 수신 할 수 있습니다. 시스템은 메시지가 도착하면 Intent 브로드 캐스트를 통해 Android 애플리케이션을 작동시킵니다.

제 질문은 사용자가 로그 오프하거나 애플리케이션을 종료 할 때 GCM 메시지를 어떻게 막을 수 있습니까?

다음 중 어느 것이 더 좋을까요? 다른 접근법을 제안 해 주시겠습니까?

옵션 A :

내 안드로이드 응용 프로그램은 사용자가 성공적으로 로그온되면 GCM에 등록하고 사용자가 로그 오프 한 후에는 GCM에서 등록을 취소합니다. 이렇게하면 제 3 자 서버가 등록 ID를 사용할 수있을 때만 GCM 메시지를 보내도록 할 수 있습니다. 그러나 등록/등록 취소가 자주 그렇게 권장되는 방법입니까?

옵션 B :

은 안드로이드 응용 프로그램도 로그 오프 또는 종료 상태에서 메시지를 받 읍시다하지만, 응용 프로그램 (즉, 단지 그들을 무시) 그들에 반응하지 않습니다. 권장되는 방법입니까? 성과 측면에서 어떤 불이익을 낳을까요? 사용자가 안드로이드 응용 프로그램의 불필요한 (성가신) 깨우기를 알 수 있습니까?

도움을 주시면 감사하겠습니다.

답변

1

내 제안에 따르면, 두 번째 옵션은 서버에서 가져 오는 푸시 메시지를 환경 설정 파일 (마지막 하나 또는 임팩트 1)에서 업데이트 할 수 있고 사용자가 로그인 한 동안/그녀.

+0

사용자가 로그온 할 때마다 항상 최신 데이터를 가져 와서 환경 설정 파일에 최신 메시지를 저장할 필요가 없다고 생각합니다 (메시지를 새로 고치면 데이터가 새로 고쳐지고 로그온시에 문제가 있음) . 내 질문은, 이것이 권장 관행인가? 성과 측면에서 어떤 불이익을 치룰까요? 사용자가 안드로이드 응용 프로그램의 불필요한 (성가신) 깨우기를 알 수 있습니까? –

+0

아니요 성능 문제가 아닙니다. 기기가 푸시 메시지를받는 동안 불필요하게 웨이크 업하지 않습니다. GCM 기능을 사용하는 동안 매니페스트에서 wake_lock의 사용 권한을 부여하는 이유는 무엇입니까? – pyus13

+0

@Wayofhope 가능한 경우 구현할 수있는 또 하나의 기능은 로그온하거나 응용 프로그램을 시작하는 동안 서버에 대한 최신 업데이트를 요청하기 위해 웹 서비스를 누르기 만하면됩니다. – pyus13

관련 문제