2012-01-22 2 views
0

화면 밝기를 [UIScreen mainScreen].brightness = newBrightness으로 변경하는 앱이 있는데 사용자가 앱 사용을 끝내면 이전 상태로 밝기를 복원하고 싶습니다.applicationDidEnterBackground 및 applicationWillResignActive의 대안은 무엇입니까?

나는이 두 가지 위임 방법을 시도했다 :

  • - (void)applicationDidEnterBackground:(UIApplication *)application
  • - (void)applicationWillResignActive:(UIApplication *)application

그러나 많은 성공없이. 밝기를 변경하려면 내 앱이 포 그라운드에 있어야한다고 생각하십니까? didEnterBackgroundMethod에서 밝기를 변경하면 아무 효과가 없습니다. willResignActive을 사용할 때 을 입력하면은 다른 앱으로 전환해도 밝기를 복원하지만 홈 버튼을 누르면 아무 효과가 없습니다.

전에 실행 된 알림 또는 위임 방법이 있습니까? 앱이 전경을 떠나기 전에?

답변

0

다른 사람에게도 마찬가지입니다. S.O. post을 참조하십시오.

이 유일한 방법 주위에 대한 setBrightness을 잊고보기에 검은 색 반투명 ​​오버레이하여 시뮬레이션 것 같다 ...

OLD 답변 :

를 누를 때 willResignActive도 호출 할 필요가

응용 프로그램이 시작되기 전에 홈 버튼이 배경 상태가됩니다.

이 메소드는 응용 프로그램이 활성 상태에서 비활성 상태로 이동하려고한다는 것을 알리기 위해 호출됩니다. 일시적인 일시적인 방해 (수신 전화 또는 SMS 메시지와 같은) 또는 사용자가 응용 프로그램을 종료하고 백그라운드 상태로의 전환을 시작할 때 이러한 현상이 발생할 수 있습니다. 비활성 상태의 응용 프로그램은 계속 실행되지만 들어오는 이벤트는 응답자에게 전달되지 않습니다.

이것은 또한 내가하는 행동입니다. 그래서, 내 추측 (하지만 추측)은 앱이 배경을 지원하도록 설정되어 있지 않아 홈 버튼을 누르면 종료된다는 것입니다. 이 경우 applicationDidEnterBackground이 호출되지 않습니다.

UIApplicationExitsOnSuspend 프로젝트의 info.plist 파일을 확인하거나 "응용 프로그램을 백그라운드에서 실행하지 않음"키를 확인하십시오.

또한 이러한 함수에 일부 중단 점 (또는 NSLog 추적)을 넣고 효과적으로 예상대로 호출되는지 확인할 수 있습니다.

+0

이벤트가 항상 호출되고 있으며 디버깅을 통해이를 확인했습니다. 문제는 배경으로의 전환이 이미 발생했기 때문에 밝기를 변경하는 API에 아무런 영향이 없다는 것입니다. –

관련 문제