2013-06-04 4 views
0

내 앱에 타이머가 있으며 앱이 백그라운드에서 실행되는 동안 실행되도록하고 싶습니다. 타이머가 표시 될 때 사용자가 집 버튼을 누르면 즉각 "01:11:11"이라고 표시되고 앱으로 돌아가고 10 분 후에 타이머가 "01"로 표시됩니다. : 01 : 11 "그러나 정확한 시간에서 업데이트되기 전에 앱이 백그라운드 ("01:11:11 ")로 갔을 때 마지막 상태를 보여주는 부분이 두 번째로 나타납니다.IOS : 앱이 표시되기 전에 업데이트 강제 실행

"applicationDidBecomeActive"에서 타이머의 상태를 업데이트하여이 문제를 해결할 수 있다고 가정하고 Xcode의 시뮬레이터에서는 작동하지만 내 Ipad에서는 작동하지 않습니다.

내 드로잉적인 Cocos2D를 사용하고 있는데 이것이 내가 내 applicationDidBecomeActive에서 뭘하는지입니다 :

CCScene *s=[director_ runningScene]; 
GameLayer *l=[(GameLayer*)[s getChildByTag:GAME_LAYER_TAG]; 
if (l!=nil) [l myUpdate]; 

나는 myUpdate이 전화를받을 않기 때문에 비록 문제와 관련이 있다고 생각하지만, 아직도 내가하지 않습니다 내 Ipad에서 두 번째 결함이 생겨도 마치 마지막 상태에서 다시 시작하는 것처럼 보입니다.

+1

는 아이폰 OS는하지 않습니다 ... 어쨌든 "속임수" 그것을 backgrounding하기 전에 애플 리케이션의 마지막 그래픽 상태와 비트 맵을 캐시하고 재개시 즉시 사용합니까? – marko

+1

예 Marko, 정확합니다. iOS는 백그라운드로 들어가기 전에 앱의 스크린 샷을 찍습니다. 이 문제를 해결할 방법이 없습니다. –

답변

1

apples clock app에서는 applicationDidEnterBackground에서 타이머 텍스트를 숨김으로써 앱이 포 그라운드로 들어 오면 앱이 새 타이머 데이터를 UI에서로드하는 초당 빈 UI를 볼 수 있도록합니다. 또한 첫 번째로 호출되는 applicationWillEnterForeground에서 일부 applicationDidBecomeActive 코드를 호출 할 수 있습니다. 그러나 appWillEnterForeground는 앱이 처음 시작될 때 이 아니고이 아니라는 점에 유의하십시오.

앱이 포 그라운드로 들어갈 때와 UI가 업데이트 될 때 사이에 항상 지연이 있습니다. Theres 그것을 고칠 수있는 방법, 그래서 당신은뿐만 아니라 사과를 사용하여 문제를 해결하는 데 사용할 수 있습니다.

+0

나는 내 UI를 숨기려고했지만 내 applicationWillResignActive에서 그랬다. 그래서 집 버튼을 두 번 클릭하면 보이지 않는 미리보기가 만들어졌지만 applicationDidEnterBackground에서 그 일을하는 것이 트릭을하는 것처럼 보인다. –

+0

예, 사용자가 앱을 더 이상 볼 수 없을 때 applicationDidEnterBackground가 호출됩니다. –

+0

글쎄, 스크린 샷이 applicationWillResignActive와 applicationDidEnterBackground 사이에서 찍은 것처럼 보였으므로 적어도 다시 확인했고 적어도 내 ipad에서는 작동하지 않습니다. 즉, 처음 UI를 숨기면 미리보기가 나사로 고정됩니다. 홈 버튼) 두 번째로 내 UI를 숨기면 내 원래의 문제로 해결되지 않습니다. ( –

0

글쎄, 저는 applicationWillResignActive와 applicationDidEnterBackground에서 UI를 숨기려고했습니다. applicationWillResignActive가 먼저 호출되고 미리보기 (HOME을 두 번 클릭)하기 전에 "너무 예쁘지 않은"미리보기가 발생하지만 적어도 원래의 문제는 해결할 것이라고 생각했습니다. 그것은 (안, 내 IPad). applicationWillResignActive 이전에도 시스템이 스크린 샷을 찍는 것처럼 보입니다.

나는 공식 시계 응용 프로그램에서 타이머를 확인하고 내가 앱이 (미리보기) 배경에있을 때 시계도 업데이트하고 참조, 그래서 그들은

관련 문제