gpt4 book ai didi

loops - 当我的iOS 4应用程序处于后台时,如何重复调用方法?

转载 作者:行者123 更新时间:2023-12-03 02:26:19 25 4
gpt4 key购买 nike

我正在为iOS 4编写一个应用程序,该应用程序在后台时需要以固定的(用户指定的)间隔播放声音(或振动)。我不想使用本地通知,因为不需要显示可点击的警报。

当我的应用切换到后台时,将触发此代码(来自Apple的文档):

UIApplication *app = [UIApplication sharedApplication];

bgTask = [app beginBackgroundTaskWithExpirationHandler:^{
[app endBackgroundTask:bgTask];
bgTask = UIBackgroundTaskInvalid;
}];

// Start the long-running task and return immediately.
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

// Do the work associated with the task.
NSLog(@"I am now in the background");

// Here I need something like this:
[self performSelector:@selector(myMethod) withObject:nil afterDelay:5.0];

[app endBackgroundTask:bgTask];
bgTask = UIBackgroundTaskInvalid;
});

当应用程序切换到后台时,会执行 [self performSelector: ...]行,但是直到将应用程序切换回前台(在 myMethod参数中设置的5秒钟内),才会调用 afterDelay:方法。因此,当应用程序仍在后台时,如何使该方法被调用?

最佳答案

没关系!安排本地通知可以满足我的需求。

最好将本地通知与UIApplication cancelAllLocalNotifications一起使用,以清除用户尚未关闭的现有通知。完善!另外,如果弹出消息告诉用户声音(或振动)的含义,那么用户将获得更多好处。

关于loops - 当我的iOS 4应用程序处于后台时,如何重复调用方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4462886/

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