2016-06-28 3 views
0

서비스를 사용하여 정보를 지속적으로 동기화하여 활동에 표시합니다. 서비스는 무한 루프 을 실행하는 반면 (true)은 정보가 10 초마다 업데이트됩니다. 일부 장치에서는 서비스가 실행 시간 후에 중지됩니다. intentService의 작업을 어떻게 실행시킬 수 있습니까? 사용자가 응용 프로그램을 최소화하더라도 실행해야합니다.끊임없는 IntentService를 만들려면 어떻게해야합니까?

+0

질문의 주제가 귀하의 질문과 반대입니다. 또는 앞에 : "사용법"과 마지막에 물음표를 넣으십시오. – statosdotcom

+1

"나는 ... 10 초마다 정보를 지속적으로 동기화합니다"- "동기화"를 사용하면 인터넷을 통해 일부 서버와 동기화된다는 의미이며, 이것이 왜 좋은 생각이라고 생각합니까? Android는 배터리 수명을 중요하게 생각하므로 앱이 이런 종류의 일을하지 못하도록 막대한 시간을 할애 할 것입니다. – CommonsWare

답변

3

당신은 그렇게하지 않습니다 (그리고 당신은 안드로이드 6.0 이후로도 할 수 없습니다 : doze). cloud messaging을 사용하여 서버에서 변경된 사항이 있음을 앱에 알리십시오.

0

Service은 하나의 활동보다 오래 지속되는 장기 실행 프로세스를 호스팅하는 데 이상적입니다. 데이터를 저장하고 있거나 일부 종류의 백그라운드 처리를 수행하는 것과 달리 데이터를 표시하는 경우 Service을 전혀 사용할 이유가 없습니다. 작업에 Handler#postDelayed(...)을 사용하고 일시 중지시 작업이 제거되었는지 확인하십시오.

10 초마다 폴링이 과도하게 발생합니다. 실제로 폴링은 데이터가 폴링하는 것처럼 자주 변경되지 않는다면 아마 비효율적 일 것입니다.

관련 문제