iOS 定时器Timer不走

作者: SunnyLeong | 来源:发表于2017-01-05 14:31 被阅读47次
timer-线程问题

问题原因:

一般定时器timer都会被以默认模式default添加到主线程的runloop中,当滑动界面时,runloop接到信息处理事件,就会改变timer的运行模式到tracing,从而停止运行timer。

解决方法:

1、改变timer添加到runloop中的模式:


[[NSRunLoop currentRunLoop] addTimer:_shufflingFigureTimer forMode:NSRunLoopCommonModes];

2、把timer添加到支线程

[NSThread detachNewThreadSelector:@selector(bannerStart) toTarget:self withObject:nil];
- (void)bannerStart{
         _shufflingFigureTimer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(shufflingFigureTimerAction:) userInfo:nil repeats:YES];
        [[NSRunLoop currentRunLoop] addTimer:_shufflingFigureTimer forMode:NSDefaultRunLoopMode];
        [[NSRunLoop currentRunLoop] run];
}

相关文章

  • iOS 定时器Timer不走

    问题原因: 一般定时器timer都会被以默认模式default添加到主线程的runloop中,当滑动界面时,run...

  • 【Swift】iOS中的定时器

    在iOS中我们常用的定时器有三种: Timer, CADisplayLink, DispatchSourceTim...

  • 【golang】定时器的使用

    一.一次性定时器Timer,定时器停止timer.Stop(),定时器重置timer.Reset() 二.周期定时...

  • iOS14开发-Timer

    定时器可以设置按固定周期执行某个操作。iOS 中主要有 3 种定时器,本文先讲解第一种 Timer。 使用 iOS...

  • Crash拦截器 - NSTimer无法释放和内存泄漏之解除

    前言 在iOS开发中,我们使用定时器(timer)的几率很高,系统中最常用的方式有GCD中提供的timer接口和我...

  • iOS 定时器耗电探究

    iOS开发中的几种定时器 iOS开发中定时器实现方式大致有三种,一种是Timer实现,一种是通过GCD自己创建,另...

  • Timer定时器

    Timer定时器

  • 定时器 Timer

    定时器 Timer [toc] 定时器 Timer 的使用 Timer 类主要负责计划任务的功能,也就是在指定时间...

  • Kafka技术内幕: 层级时间轮

    层级时间轮 3.4.4 定时器Timer 那么Kafka的Timer定时器是如何存储DelayedOperatio...

  • NSProxy&NSTimer

    原文链接 开发过程中我们必不可少的需要接触定时器,在iOS中,常用的定时器有以下几种: GCD Timer CAD...

网友评论

本文标题:iOS 定时器Timer不走

本文链接:https://www.haomeiwen.com/subject/msdzvttx.html