выйти из приложения, установив NSTimer? - PullRequest
0 голосов
/ 16 марта 2012

Есть ли какой-нибудь лучший способ выйти из приложения программно?

Недавно я сделал радио-приложение, в котором есть пользовательская настройка для установки времени с помощью NSTimer для выхода из процесса приложения (я имею в виду время сна).когда наступит время, приложение должно быть остановлено и завершено.

Я использовал эти операторы для выхода из приложения, когда время достигнет,

  [[UIApplication sharedApplication] suspend];
  [[UIApplication sharedApplication] terminateWithSuccess];

theTimer=[NSTimer scheduledTimerWithTimeInterval:(1.0/1.0) target:self selector:@selector(countTime) userInfo:nil repeats:YES];

counter-=1;
timeLeft.text=[NSString stringWithFormat:@" %d",counter];
if (counter==0.0) {

    [theTimer invalidate];
  [[UIApplication sharedApplication] suspend];
  [[UIApplication sharedApplication] terminateWithSuccess];

это их проблема с помощью [[UIApplicationsharedApplication] suspend];[[UIApplication sharedApplication] terminateWithSuccess];методы

любой другой лучший способ выйти из приложения или хотя бы заморозить процесс приложения .. мне нужна помощь?

Ответы [ 3 ]

2 голосов
/ 16 марта 2012

Apple не утвердит любое приложение, которое намеренно приостанавливает или прекращает работу. Вы можете использовать только те методы , которые указаны в официальной документации , которая не включает suspend или terminateWithSuccess.

0 голосов
/ 17 марта 2012

tanq для ваших повторов, так что я просто забываю о выходе из программы программно. Следующий способ - остановить воспроизведение моего объекта MPMoviePlayerController. получил проблему следующего уровня

Моя страница настроек для SleepTime и страниц с воспроизведением музыки, обе разные viewControllers поэтому я не могу получить доступ к объекту MPMoviePlayerController непосредственно на странице настроек времени, поэтому я создал метод на странице воспроизведения музыки

MPMoviePlayerController *player=[[MPMoviePlayerController alloc]initWithContentURL:[NSURL URLWithString:@"http://www.radioparadise.com/musiclinks/rp_64aac.m3u"]];
[player prepareToPlay];
[player play];

- (IBAction)StopPlay:(id)sender 
{   
 [player stop];
}

поэтому я создал объект для страницы воспроизведения музыки и вызвал этот метод на странице настроек., это мой код в настройках страницы

@class MusicPlayingPage;
 @interface secondView : UIViewController
{
MusicPlayingPage *audio; 
}

и вызвал метод в настройках страницы

[audio stopPlay];

элемент управления правильно достигает streamingPage, но кажется, что игрок не останавливает игру, я не могу получить доступ ни к одному из этих параметров игрока [останов игрока]; , [пауза игрока];

любая проблема для этого метода в musicPlayingPage

- (IBAction)StopPlay:(id)sender 
{   
 [player stop];
}

извините, если мой вопрос не понятен.

0 голосов
/ 16 марта 2012

Я всегда использовал выход (0).Я полагаю, что если вам нужно запустить код до выхода из приложения, вы должны вызвать его перед выходом (0).

Apple не поощряет использование exit (), поскольку с точки зрения пользователяэто похоже на аварию.Но они также говорят, что нет API-вызова, чтобы изящно завершить работу вашего приложения.

Если вы ищете способ завершить ваше приложение, не нажимая кнопку home, во время сна я предполагаю, что он не запутаетс ошибкой, так как он не будет обращать внимания на ваше приложение, а exit () не оставляет журнал сбоев.

Итак, вы можете выбрать следующие параметры:

  • Забудьте об этом и просточерез некоторое время прозвучит звуковой сигнал, чтобы напомнить ему, чтобы закрыть приложение.(ужасно!)
  • Закройте приложение, используя ваши личные вызовы, и рискуйте отказать Apple.
  • Закройте приложение, используя exit (), и придерживайтесь вызовов POSIX (принятых).
...