applicationWillResignActive и setBrightness не работают?

Я использую [[UIScreen mainScreen] setBrightness:] (в sdk 5.0), чтобы изменить системный фоновый свет в моем приложении.

Следующие шаги работают с моим приложением:

  1. Активировать приложение, установить яркость системы по умолчанию, затем сохранить как sysBright.

  2. Измените яркость в моем приложении, измените яркость, затем сохраните как appBright.

  3. Приложение ResignActive с кнопкой «Домой» или кнопкой блокировки, установите яркость на sysBright (значение шага 1, системная яркость по умолчанию).

  4. Снова активное приложение. Затем он повторит вышеуказанные шаги с 1 по 3.

Что-то не так с шагом 3, когда я деактивирую приложение с помощью кнопки блокировки, функция applicationWillResignActive работает нормально, она может восстанавливать значение яркости (sysBright).

Но когда я нажимаю кнопку «Домой», она перестает работать. Яркость по-прежнему остается тем значением, которое я изменил в своем приложении. (appBright)

Кто-нибудь знает об этом? Спасибо за любую помощь ~

Вот код:

float appBright,sysBright;

- (void)applicationDidBecomeActive:(UIApplication *)application
{
    sysBright = [[UIScreen mainScreen] brightness];
    [[NSUserDefaults standardUserDefaults] setFloat:sysBright forKey:@"sysBright"];

    [[UIScreen mainScreen] setBrightness:appBright];
}

//doesn't work when i ResignActive with the home button
- (void)applicationWillResignActive:(UIApplication *)application
{        
    [[NSUserDefaults standardUserDefaults] floatForKey:@"sysBright"];
    [[UIScreen mainScreen] setBrightness:sysBright];        
}

Я что-то упускаю?

27
задан Adam Waite 29 November 2011 в 19:12
поделиться