2017-11-28 18 views
2

내 앱은 사용자가 작업을받는 로그인 기반 사용자 시스템으로 구성됩니다. 사용자의 작업 목록을 정기적으로 서버와 동기화하여 새로운 작업이 앱에 즉시 반영되도록해야합니다. 다른 앱에서는 이전에 이런 종류의 동기화 작업을 수행했지만 가장 좋은 방법은 알고 싶습니다. 나는 두 가지 접근법을 가지고 있는데 어느 것이 더 낫는지 또는 다른 생각이 있다면 알려주 길 바랍니다.앱을 서버로 업데이트하는 가장 좋은 방법은 무엇입니까?

내가 IntentServiceAlarmManager 시간의 고정 간격으로 백그라운드 서비스를 실행하고 HTTP 요청을 통해 단절에 대한 변경 (서버 요청에 즉 응용 프로그램)를 확인하는 데 사용할 수있는 1

접근 방식.

접근법 2

내가 NanoHTTPD 라이브러리를 사용하여 내 응용 프로그램을 통해 작은 TCP 서버를 호스팅 할 수 및 서버의 모든 새 항목 후에 내가 이러한 변화를 알리는이 작은 TCP 호스트 서버에서 요청을 할 수

(즉, 서버에서 앱 요청).

내가 전에 APPROACH1을 사용했다하지만 난하여 추정 더 에 관심이 있어요 (난이 적은 배터리를 소모 것이라 생각합니다). 그러므로 어느 것이 더 효과적인 (즉,보다 효율적이고 안전하며) 방법인지 알려주십시오. 다른 아이디어가 있으시면 언제든지 공유하십시오.

+0

당신은 소켓 –

+0

을 통해 서버에 연결 Rethinkdb는 영역은, 카우치베이스 주식회사 모바일은, 구문 분석 서버는 하나가 더 나은 영역 또는 중포 기지 –

+0

에서 일을 동기화 위해 만들어진 모든 자체 호스팅 데이터베이스 옵션은 당신이 경우에 따라 다름을 유지할 수 있습니다 호스팅 된 솔루션을 원합니다 –

답변

5

두 가지 방법을 모두 사용하면 배터리가 크게 소모됩니다.

여기서 가장 좋은 방법은 푸시 알림을 사용하는 것입니다. FireBase 클라우드 메시징과 같은 잘 알려진 서비스 제공 업체 중 한 곳에 앱을 등록한 다음 알림 전달을 처리 할 클라우드 메시징 서비스에 알림을 보내도록 앱 서버를 구성하기 만하면됩니다.

Google Play 서비스를 사용하여 연결을 유지하기 때문에 배터리 사용에 대해 걱정할 필요가 없습니다.

당신이해야 할 일은 서비스의 onMessageReceived 메소드를 재정의하고 거기에서 데이터를 업데이트하는 것입니다.

+0

빠른 응답을 주셔서 감사합니다. 나는 구글 플레이 서비스가 이것이 나를 위해 정말로 도움이되는 연결을 열어 둔다는 것을 알지 못했다. –

1

푸시 알림 서비스를 사용해 보시지 않겠습니까? 배터리 수명 및 네트워크 사용면에서 더 나은 옵션입니다.

편집 : 제 생각에는 배터리를 저장하고 네트워크의 사용을 절약하기 위해 당기 (주기적으로 서버에 요청) 피 좋을 것이다. 그래서 Google Cloud Messaging/Firebase와 같은 서비스를 통해 푸시 알림을 구현할 수 있습니다 (서버가 요청할 새로운 기능이 있음을 서버에 알립니다).

+0

이 질문에 대한 답변을 제공하지 않습니다. 충분한 [평판] (https://stackoverflow.com/help/whats-reputation)이 있으면 [모든 게시물에 댓글을 달 수 있습니다] (https : // stackoverflow.com/help/privileges/comment); 대신, [질문자의 설명이 필요없는 답변을 제공하십시오] (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- i-do- 대신). - [검토 중] (리뷰/저품목/18088918) – blizzard

+0

죄송합니다. 답변을 개선하려고 노력합니다. – anj0

+0

@ anj0 여러분의 답변에 감사드립니다. 모든 사람들이 firebase를 사용하고있는 것처럼 보입니다. D –