2011-12-10 3 views
0

데이터베이스를 너무 자주 업데이트하는 애플리케이션이 있지만 애플리케이션을 닫거나 활동을 전환하자마자 업데이트가 중지됩니다. 서비스 클래스를 사용하면이 문제를 해결할 수 있다고 가정하지만 서비스에서 내 활동을 새로 고치거나 데이터베이스를 업데이트하는 방법을 모르겠습니다. 내 질문은 내 데이터베이스를 업데이트하는 서비스를 어떻게 사용합니까? 내 데이터베이스가 사용자가 입력 한 데이터베이스에 세 개의 문자열을 가져 오는 데 도움이된다면.백그라운드에서 데이터베이스 업데이트

답변

0

예. 계속해서 실행하는 가장 좋은 해결책은 서비스에 작업을 넣는 것입니다.

보기 업데이트의 경우 어떤 API 수준을 사용하고 있습니까? 3.x +를 사용하고 있다면, 데이터베이스 변경시 즉시 뷰를 업데이트하므로 로더를 조사하는 것이 좋습니다.

다른 모든 API 레벨의 경우 한 가지 해결책은 활동을 서비스의 수신기로 등록하는 것입니다. 서비스가 데이터베이스 업데이트를 완료 할 때마다 해당 서비스의 등록 된 모든 리스너에게 메시지를 보냅니다. 그러나이 작업을 수행 할 때 onResume에서 리스너로 활동을 등록하고 onPause에서 등록 취소하여 널 포인터 상황을 방지해야합니다.

+2

IntentService를 사용할 수 있습니다. 세 줄을 엑스트라로 전달하십시오. 여러 개의 인 텐트를 시작할 수 있으며 연속적으로 실행됩니다. 업데이트는 FIFO 대기열에 쌓여서 제출 순서대로 데이터베이스를 업데이트합니다. IntentServices가 중지되므로 앱이 종료되고 계속 실행됩니다. –

관련 문제