разрыв телефона, iphone и большой плохой idleTimerDisabled - PullRequest
3 голосов
/ 28 апреля 2011

я много читаю о том, как не допустить, чтобы iphone спал во время работы моего приложения. Сейчас я очень недоволен, потому что ничего не работает ..

здесь Я читал об идее настройкитаймер на каждые 30 секунд, чтобы установить для idleTimerDisabled значение NO, а затем YES, но мой объект еще не так хорош.кто-нибудь может сказать мне, как (и где)?

thnx!

edit: вот код, который я попробовал:

- (void)applicationDidFinishLaunching:(UIApplication *)application
{   
    [ super applicationDidFinishLaunching:application ];
    //application.idleTimerDisabled = NO;
    //application.idleTimerDisabled = YES;
    //[[UIApplication sharedApplication] setIdleTimerDisabled:YES];
    [UIApplication sharedApplication].idleTimerDisabled = NO;
    [UIApplication sharedApplication].idleTimerDisabled = YES;


}

edit2: после этого я попытался запуститьцикл с:

-(void)_timerLoop
{
    // add this function up the top.  it's what will happen when the
    // timer goes off:
    NSLog(@"Your timer went off!!!");
}


/**
 * This is main kick off after the app inits, the views and Settings are setup here.
 */
- (void)applicationDidFinishLaunching:(UIApplication *)application
{   
    [ super applicationDidFinishLaunching:application ];
    //application.idleTimerDisabled = NO;
    //application.idleTimerDisabled = YES;
    //[[UIApplication sharedApplication] setIdleTimerDisabled:YES];
    //[UIApplication sharedApplication].idleTimerDisabled = NO;
    //[UIApplication sharedApplication].idleTimerDisabled = YES;
    [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(_timerLoop) userInfo:nil repeats:YES];


}

edit3: вы действительно не можете случайно изменить понижающие голоса?было бы хорошим chnage запросом к системе stackoverflow!

Ответы [ 2 ]

3 голосов
/ 29 апреля 2011

Относительно вашего вопроса об использовании таймера :

Вот как вы можете отключить таймер (только один раз) через 30 секунд:

-(void)_jump
{
// add this function up the top.  it's what will happen when the
// timer goes off:
NSLog(@"Your timer went off!!!");
}
...
// here's how to create the timer, which will go off in 30 seconds
[NSTimer scheduledTimerWithTimeInterval:30.0
   target:self selector:@selector(_jump) userInfo:nil repeats:NO]

Если вы хотите два разных таймера , то, скажем, через 30, а затем через 60 секунд, просто сделайте два одинаковым образом.Дайте мне знать, если вам нужна дополнительная помощь с таймерами!


Это не может быть проще.Просто добавьте эту строку:

application.idleTimerDisabled = YES;

Внутри вашей подпрограммы "application didFinishLaunchingWithOptions".

Вы найдете эту подпрограмму в вашем делегате приложения .m файле исходного кода.

Обязательно добавьте ДО"return YES";Заявление - распространенная ошибка!Итак, вот так:

-(BOOL)application:(UIApplication *)application
            didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
    // blah blah ...

    application.idleTimerDisabled = YES;
    return YES;
    }
1 голос
/ 27 июля 2012

Просто установка [UIApplication sharedApplication] .idleTimerDisabled = YES;в

  • (BOOL) приложение: (UIApplication *) приложение didFinishLaunchingWithOptions: (NSDictionary *) launchOptions

хорошо работает для меня.Однако есть одна оговорка.Я заметил, что каждый раз, когда я запускаю утилиту камеры из своего приложения для создания снимка телефона, для моментального снимка idleTimerDisable устанавливается в NO за сценой.Поэтому сразу после загрузки своего изображения мне снова пришлось вызвать следующую строку кода:

[UIApplication sharedApplication] .idleTimerDisabled = YES;

Кроме того, я не удивлюсь, если появятся ещемест по всему приложению таймер простоя становится включенным.

...