I use [[UIScreen mainScreen]setBrightness: ]
(in sdk 5.0) to change the system background light in my app.
The following steps work with my app
Active the app, get the system brightness as default, then save as
sysBright
.Change the brightness with my app, changed brightness, then save as
appBright
.ResignActive app with home button or lock button, set brightness to
sysBright
(step 1 value, system default brightness).Active app again. Then it will repeat the above steps form 1 to 3.
Something is wrong with step 3, when I inactivate the app with the lock button, the function applicationWillResignActive
works well, it can restore the brightness value (sysBright
).
But when I press the home button, it doesn't work anymore. The brightness is still the value I changed in my app. (appBright
)
Does anyone have any idea about it? Thanks for any help ~
Here is the code:
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];
}