2012-10-12 5 views
1

위치 서비스를 사용하는 간단한 앱이 있고 백그라운드에서 실행되도록 등록합니다. 위치 데이터로 간단한 tableView을 업데이트합니다. 이 데이터는 사용자가 앱을 종료하고 다른 작업을 수행 할 때 계속 수신됩니다.iOS : 위치 서비스에서 실행 중 UI 업데이트 배경

현재 UI를 업데이트하려면 내 - (void)applicationWillEnterForeground:(UIApplication *)application에있는 메소드를 호출 중이지만 앱이 열리고 UI가 업데이트 될 때까지 여전히 두 번째 분할이 있습니다.

백그라운드에서 정기적 인 UI 업데이트를 시도했지만 놀랍지 만 이것이 작동하지 않는 것 같습니다.

사용자가 앱을 다시 포 그라운드로 가져올 때 UI를 완전히 업데이트 할 수있는 솔루션이 있습니까?

답변

1

가장 좋은 해결책은 프로필을 작성하고 새로운 데이터를 표시하기 전에 지연되는 이유를 확인하는 것입니다. 미리 코어 데이터 쿼리를 수행하는 것과 같이 상당한 시간이 걸릴 수있는 디스플레이를 준비하기 위해 몇 가지 작업을 수행 할 수 있습니다.

일시 중지 된 상태에서 화면에서 빈 UI 비트 맵을 덤프하고 활동에 따라 직접 쓸 수 있습니다. 그런 다음 응용 프로그램이 다시 시작될 때 실제 화면을 표시하기 전에 비트 맵을 화면 오버레이로 간략하게 표시합니다. 완전한 UI.

+0

배경에서 돌아올 때 많이하지 않습니다. 현재'NSManagedObject'에서'NSSet' 객체를 얻는 중입니다. 그런 다음 배열로 정렬하여 'UITableView'에 표시합니다. 비싼 작업이어야하는 것처럼 보이지 않습니다. 프로파일 링 할 때 무엇을 관찰해야합니까? 지속? –

+0

디스플레이가 업데이트되는 데 걸리는 시간은 얼마되지 않습니다. 당신이 전경에 오기 전에 나는 적어도 정렬을 할 것입니다. 또한 그것은 귀하의 테이블 세포가 더 빨리 그려 지도록 최적화 될 수 있습니다. –

관련 문제