Tag: 多任务

iOS的VoIP应用程序睡觉和可达性已经改变,我可以得到通知?

我正在为iOS构build一个voip应用程序,并且正在处理后台工作。 到目前为止,我有iOS监听VoIP套接字,而应用程序睡觉,唤醒它传入的数据。 我的问题是: 当可达性发生变化时(Wifi – > 3G,Wifi – >其他Wifi等) 和应用程序暂停,我可以得到一些通知,以重新连接我的VoIPsockets? 谢谢。

当从后台打开应用程序时调用了什么UIViewController方法?

有没有任何确定的方式来确定是否从背景模式的应用程序加载视图? 在3.XI中依靠viewDidLoad来做一些初始化等等,但是对于4.X来说,情况并非如此,因为你不能依赖viewDidLoad方法来调用。 我想避免在appdelegate中添加额外的标志来检测这个,我宁愿在UIViewController中使用可靠的方法来做这件事,但似乎无法在UIViewController的生命周期中find任何可以帮助我的东西。 有任何想法吗? 你如何处理这种情况?

iOS – 并发访问内存资源

我的应用程序从服务器,数据和数据描述符下载几个资源。 这些由用户操作触发的下载可以同时执行,比方说,一次最多可下载50个下载。 所有这些asynchronous任务最终都会在内存中创build对象(例如将叶子附加到数据结构上,例如将可变字典或对象添加到数组中)。 我的问题是:这可能会导致稳定性问题? 例如,如果有几个同时发生的任务尝试将密钥添加到同一个字典中,我是否应该处理这种情况,放置某种锁? 如果我实现一个for循环来查找数组中的graphics元素,是否有可能其他正在运行的任务可能会在循环中更改数组内容? 关于除了官方文档以外的多任务,multithreading问题的任何参考或重要的一般定位?

applicationDidEnterBackground总是在applicationWillTerminate之前调用?

applicationDidEnterBackground总是在iOS应用applicationWillTerminate之前调用? 我知道applicationWillTerminate并不总是被调用(多任务) – 但是当它被调用时, applicationDidEnterBackground总是被调用? 如果它已经包含在applicationDidEnterBackground ,那么我不想不必要地将代码复制到applicationDidEnterBackground ,以便支持多任务的应用程序。

在iOS中跨应用程序共享UDP数据(背景/前景或分屏多任务)

我正在撰写一个研究应用程序,利用通过UDP广播数据的特定传感器。 有各种商业应用程序使用这种传感器,我们希望能够并行运行我们的应用程序和现有的应用程序。 在过去(iOS 8及以下版本),我们将在后台运行我们的应用程序,在前台logging数据和不同的应用程序。 不幸的是,似乎只有一个应用程序能够绑定到传入的UDP数据(这是有道理的),但即将到来的'并行'的应用程序function,我想知道是否有任何解决scheme来共享应用程序之间的数据。 我唯一能想到的是以某种方式让我们的应用程序捕获数据并将其重新广播给其他应用程序,但是我不知道这是否可能在iOS中,即使这是你如何确定“谁“在UDPstream上locking。 苹果的文档在: https : //developer.apple.com/library/prerelease/ios/documentation/WindowsViews/Conceptual/AdoptingMultitaskingOniPad/index.html#//apple_ref/doc/uid/TP40015145似乎没有提供太多的信息。

IOS模拟器SigKill

当我从多任务栏中删除,然后重新运行,发现它产生SIGKILL信号时,我正在ios模拟器中试验我的应用程序。 (我通过停止应用程序,运行其他应用程序,然后从多任务栏中删除第一个应用程序并重新运行它来做到这一点。) 我认为这可能与我最近的实验有关,增加了Core Data,但是在试图简化条件之后,看起来它正在与我testing的每个应用程序发生。 代码在我的评论标识的点停在debugging器中: #import <UIKit/UIKit.h> int main(int argc, char *argv[]) { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; int retVal = UIApplicationMain(argc, argv, nil, nil); //<- STOPS with SIGKILL here [pool release]; return retVal; } 我也发现它好像是一个断点似的。 我点击继续button,它恢复,如果没有发生。 我在标记处放了一个真正的中断点,并在那里停下来。 单击继续可让程序在没有发生SIGKILL信号的情况下继续。 我用Core Data的一个基本的模板程序试了一下,没有修改我自己的,发生了这个信号。 我尝试了与其他程序不使用核心数据,并发生信号。 当程序已经被加载但是没有被debugging时,我尝试了它,并且程序运行正常,即使在debugging时出现问题。 当然,SIGKILL不会给出任何帮助的错误信息。 有谁知道发生了什么? 这似乎不是一个真正的问题,但我想确保我理解它。 我正在使用XCODE4。

何时在应用程序中调用completionHandler:performFetchWithCompletionHandler:当背景获取是asynchronous?

我有一个应用程序,在背景获取的帮助下获取内容。 所以如果一个后台抓取应该发生我的application:performFetchWithCompletionHandler:方法被调用。 在这个方法中,我使用NSURLConnection来获取asynchronous的内容。 在我目前的实现中,我只启动请求,然后用UIBackgroundFetchResultNewData调用UIBackgroundFetchResultNewData 。 我知道这是不对的。 所以我的问题是,当asynchronous请求完成connection:didReceiveData:方法时,如何正确调用completionHandler 。

如何在iOS 9中通过幻灯片和拆分视图使用AVCaptureSession?

我的团队正在开发一套用于条码扫描 , ID扫描和OCR的SDK。 我们使用设备的相机,特别是AVCaptureSession ,来获取我们进行处理的video帧。 我们正在探索新的iOS 9多任务function幻灯片和拆分视图。 苹果build议select以相机为中心的应用程序的这些function,使用整个屏幕快速预览和捕捉片刻是一个主要function( 参考 )。 这是在他们的示例应用程序AVCam中使用的方法。 但是,我们的客户可能有不属于这个类别的应用程序(例如手机银行应用程序),所以我们不能强迫他们退出,而是需要处理SDK中的新function。 我们正在探索什么是最好的方法,因为目前的文档并没有告诉我们该怎么做。 我们使用我们简单的Camera示例应用程序来分析用例。 示例应用程序在Github上可用,它是从iOS 9 Beta 5开发的。 从示例应用程序中,可以清楚地看到使用“幻灯片放映”时以及使用“分割视图”时发生了哪些系统事件。 当我们的应用程序是主要的,并使用幻灯片,我们得到了UIApplicationWillResignActiveNotification和AVCaptureSessionDidStopRunningNotification 当使用幻灯片播放,我们的应用程序是次要的,我们得到UIApplicationWillEnterForegroundNotification和AVCaptureSessionDidStopRunningNotification后立即 当使用拆分视图时,在每个分隔符拖动,我们的应用程序获取UIApplicationWillResignActiveNotification 。 但是,如果在分割视图中启动相机,则立即获取AVCaptureSessionDidStopRunningNotification 所以,凭经验来看,当使用“幻灯片”或“分割视图”时, AVCaptureSession会立即停止。 令人困惑的是我们的示例应用程序也支持的UIImagePickerControllerperformance出完全不同的行为。 当应用程序进入幻灯片放映/分割视图时, UIImagePickerController不会停止,而是完全正常运行。 通常可以在分割视图中拍照。 实际上,两个呈现UIImagePickerController应用程序可以并行工作,活动应用程序的UIImagePickerController处于活动状态。 (您可以通过运行我们的示例应用程序和联系人应用程序 – >新build联系人 – >添加照片来尝试) 考虑到这一切,我们的问题如下: 如果在使用“幻灯片”和“分割视图”时立即暂停AVCaptureSession ,是否需要监视AVCaptureSessionDidStopRunningNotification ,并向用户显示消息“Camera Paused”,以便他清楚地知道应用程序未执行扫描? 为什么UIImagePickerController行为与AVCaptureSession不同? 我们可以期待从苹果比AVCaptureSession未来testing版本行为更改为匹配UIImagePickerController ?

应用程序进入前台时重新加载应用程序数据?

我是新的iPhone开发…我正在build立一个应用程序,从本地sqlite3数据库加载数据 – (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 当我点击iPhonebutton,并把它放在背景中,然后我记得它我以同样的方式看到(如常)应用程序。 我想要做的是,当它在foregroud,重新加载数据,就像它从头调用。 哪种方法是正确的? 在此先感谢c。

在iOS多任务中进入后台时的线程行为

在运行一些testing时,我注意到当一个应用程序(没有后台权限,例如voip,gps等)进入后台状态时,任何后台运行的后台线程(或并发NSOperations)似乎都会暂停(不会终止) ,并在应用程序进入前台时继续运行。 我无法在任何地方看到这个线程行为。 有谁知道这个行为是否被定义并且可以被计算? 如果在重新打开应用程序时线程可以安全地继续,则不必取消任务或参与任务完成。 特别是复杂的操作。 任何信息将是伟大的。 谢谢!