2010-10-28 69 views
3

當我的iPhone應用程序進入後臺模式時,我必須保留NSThread或NSTimer。可能嗎 ?我已經啓用在info.plist中後臺模式,打開readstream和writestream如下...(我使用UDP)iOs 4後臺模式下的NSTimer或NSThread

CFReadStreamSetProperty(readStream,kCFStreamNetworkServiceType,kCFStreamNetworkServiceTypeVoIP);

CFWriteStreamSetProperty(writeStream, kCFStreamNetworkServiceType, kCFStreamNetworkServiceTypeVoIP); 

但是,當我的應用程序切換到後臺和鎖定狀態,NSThread或的NSTimer並沒有叫。那麼請告訴我如何在iPhone背景鎖定狀態下實現後臺線程?

回答

1

我也想知道。

我想每五分鐘更新一次CLLocation(當前位置)對象。我知道的唯一方法就是用NSTimer做到這一點。

如果這是不可能的,您的建議是什麼?

+1

唯一的出路似乎是startMonitoringSignificantLocationChanges。 – 2010-11-16 20:10:06

1

而不是NSTimer使用UILocalNotification它可以在應用程序在後臺和前臺時觸發通知。

1

對於某些應用程序(音頻,位置,voip),Apple允許在支持的設備上使用background execution

支持某些類型的後臺執行必須由使用它們的應用程序預先聲明。應用程序通過在其Info.plist文件中包含UIBackgroundModes密鑰來聲明此支持。它的值是一個包含一個或多個字符串具有以下值的數組:

audio 
location 
voip