나는이 주제를 주로 검색했다. 나는 애플의 제약에 직면 해있다. 분당 한 번씩 내 서버를 제어해야하며 변경 사항이있는 경우 로컬 알림을 실행하십시오. 내가 필요로하는 것은 타이머 (NSTimer)를 배경 (또는 장치 잠금이 활성화 될 때 ..)으로 유지하는 방법입니다. 감사합니다백그라운드에서 코드 블록을 유지하는 방법은 무엇입니까?
답변
앱의 디자인을 재고해야합니다. OS가 메모리를 확보하기 위해 사냥을 할 때 앱이 죽지 않는다고 보장 할 수는 없습니다. 그 시나리오에서는 어떻게됩니까? 푸시 알림이 최선의 방법입니다. 우선 60 초마다 서버를 폴링 할 필요가 없습니다. 관심있는 내용이 서버에서 변경되면 알림을 표시합니다. 둘째, 앱이 실행 중이 아닌 경우에도 알림이 전송됩니다.
다른 문제는 info.plist를 통해 Apple에 앱이 지원하는 배경 모드를 알려줘야한다는 것입니다. 이것은 배경 음악이나 VoIP를 실행하는 애플 리케이션을위한 것입니다. 웹 서버 폴링은 지원되는 모드 중 하나가 아닙니다. 푸시 알림을 사용하면 앱이 포 그라운드로 들어갈 때 알림을 통해 전달 된 정보를 처리하는 데 사용할 수있는 일부 대리인 메서드도 얻을 수 있습니다.
하지만 내가 알기 론 "Psuh Notifications가 전면에서 수신되도록 보장 된 것은 아닙니다. ". 나는 그것을 보증하고 싶다. – ilhnctn
예를 들어 비행기 모드 인 경우 데이터 연결이 다시있을 때까지 알림이 수신되지 않습니다. 그러나 데이터 연결이없는 경우 설문 조사는 1 분에 1 분 정도의 아이디어가 어쨌든 작동하지 않습니다. – jmstone617
예, 맞습니다.하지만 처음으로 데이터 연결을 만들면 변경된 내용이 나타납니다. – ilhnctn
서버 부분에서 논리를 수행 할 수 있으며 변경 사항이 있으면 밀어 넣기 알림을 보냅니다.
내 애플은 지속적으로 코드의 다음 조각 백그라운드에서 실행 .....
-(void)applicationDidEnterBackground:(UIApplication *)application
{
UIApplication *app = [UIApplication sharedApplication];
UIBackgroundTaskIdentifier bgTask = 0;
backgroundTimer = [NSTimer scheduledTimerWithTimeInterval:10 target:self selector:@selector(backgroundTask) userInfo:nil repeats:YES];
bgTask = [app beginBackgroundTaskWithExpirationHandler:^{
[app endBackgroundTask:bgTask];
}];
}
은 이제 backgroundTask 방법에서 원하는 무엇이든 할.
@ Vish_Ob-j Reosanable로 보이지만 문서를 읽는 한 Apple은 App Store에서이 스타일의 코드를 허용하지 않을 것입니다. 귀하의 앱이 거부 될 수 있음을 의미합니다. 이 코드는 App Store에서 승인을 받았습니까? – ilhnctn
@ilis - 아직 내 앱을 appStore에 제출하지 않았습니다. 하지만 이것은 백그라운드에서 실행되는 코드 블록을 유지하는 유일한 방법 인 것 같습니다 ... –
하지만 Apple은 그렇게 말하지 않습니다. 또한이 코드 스 니펫의 원본을 기억합니다. 위치 또는 Vo-IP 기반 응용 프로그램 (또는 기타 등등)에서 가능할 수 있습니다. 모바일 장치의 코딩 및 메모리 관리에 대한 푸시 알림이 더 좋습니다. – ilhnctn
- 1. 백그라운드에서 VOIP 소켓 연결을 유지하는 방법은 무엇입니까?
- 2. 전체 코드 블록을 단계별로 실행하는 방법은 무엇입니까?
- 3. 프레젠테이션 내에서 코드 블록을 포맷하는 방법은 무엇입니까?
- 4. XNA : 백그라운드에서 배경을 유지하는 방법?
- 5. 백그라운드에서 iphone ios xmpp 연결을 유지하는 방법은 무엇입니까?
- 6. HTML의 코드 블록을 사용하는 방법
- 7. 백그라운드에서 페이지를로드하는 방법은 무엇입니까?
- 8. 매트릭스 블록을 순환시키는 방법은 무엇입니까?
- 9. 코드 블록을 MVC 면도기 코드 블록으로 변환
- 10. GitHub는 코드 블록을 삭제했습니다.
- 11. Intellij에서 명명 된 코드 블록을 만드는 방법은 무엇입니까?
- 12. Ruby에서 하나의 코드 블록을 함수에 전달하는 방법은 무엇입니까?
- 13. Xtext DSL에 Java 코드 블록을 포함시키는 방법은 무엇입니까?
- 14. Vim을 사용하여 파이썬 코드 블록을 선택하는 방법은 무엇입니까?
- 15. 패턴 일치 코드 블록을 스칼라로 코딩하는 방법은 무엇입니까?
- 16. CFSCRIPT를 사용하여이 코드 블록을 다시 쓰는 방법은 무엇입니까?
- 17. CSV 파일에서 데이터를 추출하는 코드 블록을 압축/단순화하는 방법은 무엇입니까?
- 18. 정적 블록을 실행하는 방법은 무엇입니까?
- 19. 블록을 올바르게 사용하는 방법은 무엇입니까?
- 20. 백그라운드에서 자동으로 실행하는 방법은 무엇입니까?
- 21. 백그라운드에서 창을 최대화하는 방법은 무엇입니까?
- 22. 백그라운드에서 앱을 작동시키는 방법은 무엇입니까?
- 23. 언더 커서 코드 블록을 강조 표시 하시겠습니까?
- 24. 코드 저장소에서 IDE 구성 파일을 유지하는 방법은 무엇입니까?
- 25. JSP 코드 블록을 모듈화하는 가장 좋은 방법
- 26. Virtualtreeview에서 편집기를 유지하는 방법은 무엇입니까?
- 27. 서비스를 제대로 시작하고 안전하게 유지하는 방법은 무엇입니까?
- 28. PHP PDO 나는 코드 블록을
- 29. SPListItem.Update는 다음 코드 블록을 사용하여
- 30. 코드 블록을 사용하여 User.Identify.Name을 선택하십시오.
백그라운드에서 타이머가 작동하지 않습니다. 이것에 대한보세요 http://stackoverflow.com/questions/7190919/problem-while-working-in-background-and-nstimer – sandy