gpt4 book ai didi

iPhone 等同于周期性任务的 Timer 和 TimerTask

转载 作者:太空狗 更新时间:2023-10-30 04:01:23 27 4
gpt4 key购买 nike

我正在尝试将 Android 应用程序移植到 iPhone。在 Android 上,我可以轻松地每 60 秒处理一次数据,方法是使用 Timer 类和 TimerTasks,使用 scheduleAtFixedRate:timer.scheduleAtFixedRate(task,15000, epochLengthMs);

谢谢!

我可以在 iPhone 上使用类似的东西吗?

protected void startTimer(){

if(timerStarted){
//avoid duplicate timers!
}else{

running = true;
timerStarted = true;

if(D)Log.w(TAG,"*Timer Started*");
timer = new Timer();
readyToProcess = true;
EpochCounterTask task = new EpochCounterTask();
AutoSaveTask saveTask = new AutoSaveTask();

//give statMagnitude enough time to get values
//after 15 sec, every 60 sec
timer.scheduleAtFixedRate(task,15000, epochLengthMs);
timer.scheduleAtFixedRate(saveTask,645000, 600000);

}

}

最佳答案

您将需要创建两个 NSTimer - 一个用于纪元计数器,一个用于自动保存任务。像这样:

- (void)startTimer {

if(timerStarted){
//avoid duplicate timers!
}else{

running = true;
timerStarted = true;

readyToProcess = true;

epochTimer = [[NSTimer scheduledTimerWithTimeInterval:epochSeconds
target:self
selector:@selector(processEpochTimer:)
userInfo:nil
repeats:YES] retain];

autosaveTimer = [[NSTimer scheduledTimerWithTimeInterval:autosaveSeconds
target:self
selector:@selector(processAutosaveTimer:)
userInfo:nil
repeats:YES] retain];
}
}

您还需要定义以下处理程序方法,这些方法在计时器触发时调用:

- (void)processEpochTimer:(NSTimer*)theTimer;
- (void)processAutosaveTimer:(NSTimer*)theTimer;

关于iPhone 等同于周期性任务的 Timer 和 TimerTask,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7572454/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com