草庐IT

android - 如何每 X 秒运行一次方法

我正在开发一个Android2.3.3应用程序,我需要每X秒运行一个方法。在iOS中,我有NSTimer,但在Android中我不知道该使用什么。有人推荐我Handler;另一个推荐我AlarmManager但我不知道哪种方法更适合NSTimer.这是我想在Android中实现的代码:timer2=[NSTimerscheduledTimerWithTimeInterval:(1.0f/20.0f)target:selfselector:@selector(loopTask)userInfo:nilrepeats:YES];timer1=[NSTimerscheduledTimerWi

ios - 滚动时不会调用 NSTimer 周期性任务

我有一个NSTimertimer=[NSTimerscheduledTimerWithTimeInterval:1target:selfselector:@selector(periodicTimer)userInfo:nilrepeats:YES];哪个是-(void)periodicTimer{NSLog(@"Bang!");if(timerStart!=nil)[timerLabelsetText:[[NSDatedate]timeDifference:timerStart]];}问题是,当滚动tableview(或执行其他任务)时,标签不会更新,而且,“砰!”没有出现,所以我认

ios - 编写单元测试以验证 NSTimer 是否已启动

我正在使用XCTest和OCMock为iOS应用程序编写单元测试,我需要指导如何最好地设计一个单元测试来验证方法导致NSTimer被启动。被测代码:-(void)start{...self.timer=[NSTimertimerWithTimeInterval:1.0target:selfselector:@selector(tick:)userInfo:nilrepeats:YES];NSRunLoop*runLoop=[NSRunLoopcurrentRunLoop];[runLoopaddTimer:self.timerforMode:NSDefaultRunLoopMode];

ios - 如何在 iOS 7 中超过 180 秒的后台运行 NSTimer?

我已经试过了,但在iOS7和Xcode4.6.2中工作时间不超过180秒。请帮助我UIBackgroundTaskIdentifierbgTask=UIBackgroundTaskInvalid;UIApplication*app=[UIApplicationsharedApplication];bgTask=[appbeginBackgroundTaskWithExpirationHandler:^{[appendBackgroundTask:bgTask];}];NSTimer*timer=[NSTimerscheduledTimerWithTimeInterval:20targe

ios - uiscrollview 事件发生时 NSTimer 未触发

我在UIScrollView中放置了一个UIImageView,基本上这个UIImageView包含非常大的map,并在带有“箭头”指向导航方向的预定义路径上创建动画。但是,每当发生uiscrollevents时,我认为MainLoop会卡住并且NSTimer不会被触发,并且动画会停止。在UIScrollView、CAKeyFrameAnimation或NSTimer上是否有解决此问题的现有属性?//viewDidLoadself.myTimer=[NSTimerscheduledTimerWithTimeInterval:0.05target:selfselector:@select

ios - 当应用程序后台运行时,NSTimer 是否会触发?

我完全不明白,但我的应用程序中的NSTimer肯定在后台运行。我在计时器运行的方法中有一个NSLog,它在后台进行记录。它在装有iOS4.2.1的iPhone4上。我已经在Info.plist中声明了位置背景支持。我在这里和其他地方阅读了文档和许多讨论,这应该是不可能的。这是iOS错误吗?还是未记录的功能?我不想使用它并在不久的将来发现,例如随着iOS4.3的到来,Apple默默地“修复”了它并且该应用程序将无法运行。有人知道吗? 最佳答案 NSTimer将在主运行循环运行时触发。据我所知,Apple没有promise取消定时器或阻

ios - 如何更改 NSTimer 的计时?

我有以下代码:timer=[[NSTimerscheduledTimerWithTimeInterval:0.50target:selfselector:@selector(onTimer)userInfo:nilrepeats:YES]retain];-(void)onTimer{}每0.50秒调用一次OnTimer方法。但现在我想增加时间间隔。这意味着:OnTimercallsafter0.55OnTimercallsafter0.60OnTimercallsafter0.65OnTimercallsafter0.70OnTimercallsafter0.75&soon.有什么解决

ios - 使用 GCD 运行重复 NSTimer?

我想知道为什么当您在GCDblock中创建一个重复计时器时它不起作用?这很好用:-(void)viewDidLoad{[superviewDidLoad];[NSTimerscheduledTimerWithTimeInterval:1.0target:selfselector:@selector(runTimer)userInfo:nilrepeats:YES];}-(void)runTimer{NSLog(@"hi");}但这确实有效:dispatch_queue_tmyQueue;-(void)viewDidLoad{[superviewDidLoad];myQueue=disp

ios - NSTimer 与 CACurrentMediaTime()

因此,我正在玩我的第一个iOS游戏,并且正在为如何找到集成对象移动的最佳方式而苦苦挣扎。该游戏在很大程度上依赖于快速移动的物体和持续、快速的用户输入变化。因此,我试图让对象集成和约束求解器尽可能快速准确地运行(以尽量减少连续游戏循环调用之间的用户输入变化)。更具体地说,我不确定NSTimer类和CACurrentMediaTime()函数的功能。很难根据经验进行测试,因为我不确定哪个误差更大。例如,使用重复间隔为0.008(~2次更新/屏幕刷新)的NSTimer并在连续调用时调用CACurrentMediaTime(),我发现调用之间的时间间隔在0.0075-0.009之间变化。很难说

iphone - NSTimer、NSTask、NSThread 和 NSRunloop 之间的基本区别是什么?

NSTimer、NSTask、NSThread和NSRunloop之间有什么区别,是否有关于何时执行的指南使用它们中的每一个? 最佳答案 每个程序至少在一个线程中运行。您可以将每个线程视为一个独立的程序执行进程,每个线程都与其他线程并行运行。如果您有某种用户界面或其他代码需要监听事件(如网络端口),您需要一个运行循环。每个NSThread都会自动获得自己的运行循环,你很少需要直接关心它们。运行循环还负责创建和释放自动释放池。[编辑:有关自动释放池的更多讨论,请参阅评论。要记住的最重要的一点是新线程必须负责设置自动释放池。例如,使用d