2014-03-04 3 views
0

서버에서 JSON 파일을 다운로드하고 정보를 목록보기에 표시합니다. 하지만 좀 더 유용하게 만들고 싶습니다. 내가 뭘하고 싶은지 10 또는 x 분마다 파일을 다운로드하고 뭔가가 변경되었는지 확인하십시오. 무언가가 변경되면 통보를하고 싶습니다. 따라서 기본적으로 새로운 메일이 도착할 경우 백그라운드에서 매 x 분마다 앱이 확인하는 메일 앱과 같습니다. 하지만 실제로 내 앱이 활성화되지 않아도 파일을 계속 확인하는 백그라운드 활동과 같은 것을 만드는 방법을 알지 못합니다. AlarmManager에 대해 읽었지만 원하는 방식으로 작동하지 않는 것처럼 보입니다. 그럼 내가 어떻게 관리 할 수있는 조언이 있니?10 분마다 업데이트를 확인하고 알림을 보내십시오.

+0

Alarm Manager에 문제가 있습니까? – Merlevede

+0

글쎄, 내가 실수하지 않으면 항상 내 애플 리케이션을 시작합니다. 그러나 나는 그것이 앞으로 나오길 바라지 않는다. – user3244092

답변

3

기본적으로 알람 관리자를 사용하거나 서비스를 사용하는 두 가지 옵션이 있습니다.

당신이하고 싶은 일에 사용자 인터페이스를 제공하고 싶지 않다면, 사용하는 방법에 관계없이 어쨌든 서비스를 사용하게 될 것입니다. 설명 :

독립 실행 형 서비스를 사용하는 경우 인스턴스화하고 종료해야하며 수명주기를 처리하고 작업을 수행하는 데 10 분마다 타이머를 실행해야합니다. 또한 메모리상의 이유로 서비스가 중단되는 경우를 고려해야합니다.

경보 관리자를 사용하는 경우 의도로 서비스를 전달할 수 있습니다. 이 서비스는 사용자 인터페이스가 필요하지 않으며 시작시 작업을 끝내고 작업이 끝난 후 종료됩니다.

알람 관리자를 서비스와 함께 사용하려면 here for an example을 확인하십시오.

+0

고마워, 나는 이렇게했다. 하지만 지금은 서비스가 한 번만 실행되는 문제가 있습니다. 나는 그 일을하기 위해 서비스를 호출하는 BroadcastReceiver를 발생시키는 setRepeating을 가진 AlarmManager를 가지고있다. 그것은 한 번 작동 한 다음 다시는 작동하지 않습니다. – user3244092

+0

알람을 구성하는 방법에 문제가 있어야합니다. 새로운 문제로 새로운 질문을 올리시기 바랍니다. – Merlevede

0

서버를 제어하는 ​​경우 모든 클라이언트가 서버를 반복해서 폴링하지 않고 Google Cloud Messaging을 사용하는 것이 좋습니다. 이렇게하면 배터리 전원 및 서버로드가 절약됩니다.

평범한 HTML 서버 인 경우 Merlevede에서 설명한대로 Alarm Manager를 사용하고 또는 HTTP Etag을 사용하여 다운로드하기 전에 파일이 수정되었는지 확인하십시오.

관련 문제