1) Концепция сна / ожидания не слишком сложна; когда пользователь «выйдет» из вашего приложения (нажав кнопку «Домой»), ваше приложение будет либо остановлено и переведено в замороженное состояние (4.x), либо полностью завершено (3.x). Тем не менее, вам предоставляется возможность выполнить несколько операций очистки до того, как последний произойдет с методом - (void)applicationWillTerminate:(UIApplication *)application
, и до того, как первый произойдет с методом - (void)applicationDidEnterBackground:(UIApplication *)application
(оба будут вызваны вашим классом делегата). Концепция «сна» означает, что как в iPhone OS 3, так и в iOS 4 вы получите следующий метод, когда ваше приложение теряет фокус (а также, когда приходит SMS или предупреждение и т. Д.):
- (void)applicationWillResignActive:(UIApplication *)application
Действительно, большинство приложений (за исключением приложений, предназначенных для работы в фоновом режиме, таких как VoIP, потоковое аудио и т. Д.) Просто закрываются при закрытии. Но если вам нужно, вы также можете приостановить зависание своего приложения и попросить больше времени для выполнения задачи.
2) Вы не можете изменять длительность вибрации с помощью официальных API.
Вы можете вызывать AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
несколько раз в цикле или использовать NSTimer
, но это не рекомендуется. Это разряжает батарею, и устройство может упасть со стола. Кстати, Apple может отклонить ваше приложение, если посчитает, что вы не используете вибрацию должным образом.