jjzjj

Multitasking

全部标签

ios - 如何在不被打扰的情况下在后台循环播放声音?

以下代码应循环播放无声音频剪辑,以保持应用程序在后台处于事件状态://setsessions.............//playaudio_player=[[AVAudioPlayeralloc]initWithContentsOfURL:urlerror:NULL];audio_player.numberOfLoops=-1;//alwaysrepeatboolret=[audio_playerplay];您按下主页按钮,它会在后台播放,使您的应用程序保持事件状态。但是,当您调用电话时,播放器会停止并且[audio_playerplay]之后会返回false。那么问题来了,在后台的

ios - 我可以在 iOS 中确定应用程序是从待机状态还是从多任务处理恢复

我目前正在处理我们的iPad应用程序的更改请求,该请求要求我以两种不同的方式处理应用程序的恢复,具体取决于应用程序是否从多任务处理返回(用户在另一个应用程序或主屏幕上处于事件状态)并返回应用程序)和待机(iPad通过顶部的待机按钮或关闭SmartCover切换到待机状态)在这两种情况下,我的AppDelegate都会调用以下方法:applicationWillResignActive后跟applicationDidEnterBackground当我按下主页按钮进入主屏幕或关闭SmartCover时applicationWillEnterForeground和applicationDid

ios - 在应用程序切换器中更新 UI

当我的应用程序显示在应用程序切换器中时,我如何更新它,特别是在那一秒。我看过WWDC视频“多任务处理的新功能”,但他们的方法总是更新UI以响应新信息或根据耗时量。我每秒都会重绘一部分UI,我希望用户无需打开我的应用程序即可获得他们想要的信息。我不想在后台每秒重绘我的UI,只在应用程序切换器上显示应用程序或加载应用程序切换器时重绘一次。 最佳答案 如果您的意思是当用户在您的应用程序中并双击时,那么您应该在您的应用程序退出事件状态时进行更新。如果您的意思是,当应用程序在后台并且用户在任务切换器中经过时,唯一的方法是实现推送功能并在收到推

ios - 当应用程序处于后台时 ping 服务器

我需要让应用程序每分钟向服务器发送一个简单的GET请求(“ping”),以便它知道用户仍然在线。当应用程序处于事件状态并且在使用“beginBackgroundTaskWithExpirationHandler”进入后台10分钟后,我没有遇到任何问题。但是,除非用户手动终止应用程序,否则我如何才能一直重复请求? 最佳答案 这并不是它真正的工作方式——它不是在后台持续运行的Windows或Mac应用程序。您可能想要做的是使用backgroundfetchprocess,iOS将定期运行一种特定的方法,允许您在应用程序处于后台(或根本不

iOS:在多任务处理中检测 Regular 或 Compact

在我的应用程序中,我允许使用多任务模式。但如果我的观点太局限,我需要采取一些行动。观看Apple文档时我看到了这张图片您可以看到,在iPadPro的SplitView中,两个View都是规则的,而在其他iPad中,两个View都是紧凑的。我有什么东西可以让我知道我当前的View是规则的还是紧凑的?谢谢 最佳答案 这是我的解决方案:if(self.view.traitCollection.horizontalSizeClass==UIUserInterfaceSizeClassRegular){NSLog(@"REGULARHORIZ

ios - NSURLSessionDataTask 在 iOS 后台的同一个 NSURLSession 中的 NSURLSessionDownloadTask 之后没有被调用

我的iOS应用按以下方式运行我有一组音频文件名,我检查文件是否存在。如果它存在,它就会开始播放。完成后我开始播放下一个音频。如果文件不存在,我会发出一个NSURLSessionDataTaskPOST请求,返回一个字符串,它是要下载的文件的URL。(这URL在一分钟内有效)。收到URL后,我会发出NSURLSessionDownloadTask请求并下载文件、保存文件并播放音频。当应用程序处于前台时,整个过程工作得很好。当所有音频都存在且应用程序在后台运行时,也能完美运行。当音频文件不存在且应用程序在后台运行时出现问题我的代码:BackgroundFetchManager.h@inte

iphone - "failed to resume in time"从后台崩溃恢复

好的,所以进入后台我隐藏了所有内容。当我切换回来时,我仍然遇到未能及时恢复错误。如果所有内容都被隐藏,为什么它会在drawRect中崩溃?关于如何处理此类“恢复失败”错误的任何想法?IncidentIdentifier:0E5ADFDF-1EB1-4ECC-9F02-57B37F1BBBA1CrashReporterKey:17186e938075dd5907223199eccdc85176f18698HardwareModel:iPad1,1Process:hexProto[2162]Path:/var/mobile/Applications/31D43A9F-0EF3-4D03-8

ios - 线程阻塞 Objective-C

我刚刚阅读thisanswer(答案已被删除)而且我确信我已经看到应用程序在挂起后崩溃,所以我读到的内容是有道理的。IfyoublockthemainthreadfortoolongtheOSwillkillyourapp.但是我写了一些测试,发现在每次等待大约2-5分钟后,没有一个导致应用程序崩溃。断点确认我正在主线程上运行。有人可以证实或反驳我读到的内容,还是我只是选择了很多非阻塞的选项?如果我选择了非阻塞选项,有人可以解释为什么这些选项是非阻塞的吗?while(true){/*Nothing*/}while(true){NSLog(@"nothing");}for(;;);sle

IOS - 在后台执行有限长度的任务

我正在编写一个同步数据的iOS应用程序。我也需要在应用程序处于后台时运行同步服务。所以我在上传数据的地方写了这段代码。-(void)startAsyncUpload{UIApplication*thisApplication=[UIApplicationsharedApplication];if([thisApplicationrespondsToSelector:@selector(beginBackgroundTaskWithExpirationHandler:)]){bgTaskIdentifier_=[thisApplicationbeginBackgroundTaskWith

ios - 在后台将位置发送到服务器 - ios 7

当应用程序收到静默推送时,我尝试在后台发送用户位置。我的代码:application:didReceiveRemoteNotification:fetchCompletionHandler:看起来像:UIBackgroundTaskIdentifierbgTask=0;bgTask=[[UIApplicationsharedApplication]beginBackgroundTaskWithExpirationHandler:^{bgTask=UIBackgroundTaskInvalid;}];[_cllManagerstartUpdatingLocation];[[UIAppli