欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

ios在后臺(tái)完成一個(gè)長(zhǎng)期任務(wù)-創(chuàng)新互聯(lián)

    當(dāng)一個(gè)iOS 應(yīng)用被送到后臺(tái),它的主線程會(huì)被暫停。你用NSThread的detachNewThreadSelector:toTarget:withObject:類方法創(chuàng)建的線程也被掛起了。如果你想在后臺(tái)完成一個(gè)長(zhǎng)期任務(wù),就必須調(diào)用UIApplication
的beginBackgroundTaskWithExpirationHandler:實(shí)例方法,來(lái)向iOS 借點(diǎn)時(shí)間。UIApplication的
backgroundTimeRemaining屬性包含了程序完成他的任務(wù)可以使用的秒數(shù)。如果在這個(gè)期限內(nèi),長(zhǎng)期任務(wù)沒(méi)有被完成,iOS 將終止程序。每個(gè)對(duì)beginBackgroundTaskWithExpirationHandler:方法的調(diào)用,必須要相應(yīng)的調(diào)用endBackgroundTask:方法(UIApplication的另一個(gè)實(shí)例方法)。也就是說(shuō),如果你向iOS 要更多時(shí)間來(lái)完成一個(gè)任務(wù),你必須告訴iOS 你什么時(shí)候能完成那個(gè)任務(wù),那時(shí),你的程序?qū)⒑推渌斜粫和5木€程被放入后臺(tái)。

         當(dāng)你的程序在前臺(tái)時(shí),UIApplication的backgroundTimeRemaining屬性等于DBL_MAX常量,這是double類型可表示的大值(和這個(gè)值相當(dāng)?shù)膇nteger 通常等于-1)。在iOS 被要求在程序被完全掛起之前給于更多的執(zhí)行時(shí)間,這個(gè)屬性指明了在完成任務(wù)前程序擁有多少秒。

        在程序中你可以多次調(diào)用beginBackgroundTaskWithExpirationHandler:方法。要記住的重點(diǎn)是,當(dāng)iOS 為你的程序返回一個(gè)token 或者任務(wù)標(biāo)識(shí)(task identifier)時(shí),你都必須調(diào)用endBackgroundTask:方法,在運(yùn)行的任
務(wù)結(jié)束時(shí),用來(lái)標(biāo)志任務(wù)結(jié)束。如果你不這么做的話,iOS 會(huì)終止你的程序。

       在后臺(tái)時(shí),程序不應(yīng)該執(zhí)行完全的功能,也不應(yīng)該處理大量數(shù)據(jù)。事實(shí)上,他們只應(yīng)該完成一個(gè)長(zhǎng)期任務(wù)。

比如,一個(gè)程序正在調(diào)用一個(gè)web service API,并且還沒(méi)有從服務(wù)器上的那個(gè)API接收到響應(yīng)。在此期
間,如果程序被送入后臺(tái),它可以請(qǐng)求更多的時(shí)間,直到它從服務(wù)器收到響應(yīng)。一旦響應(yīng)被接收,程序必須保存其狀態(tài),并調(diào)用UIApplication的endBackgroundTask:實(shí)例方法將任務(wù)標(biāo)記為完成。

為京山等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及京山網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為做網(wǎng)站、成都網(wǎng)站制作、京山網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!

下面我們看看代碼實(shí)現(xiàn)的步驟:

1、定義一個(gè)任務(wù)標(biāo)識(shí)

  1. @property (nonatomic, unsafe_unretained) UIBackgroundTaskIdentifier backtaskIdentifier; 

2、當(dāng)ios app 進(jìn)入后臺(tái)時(shí),會(huì)自動(dòng)調(diào)用appdelegate的

     - (void)applicationDidEnterBackground:(UIApplication *)application  方法,在這里我們編寫要執(zhí)行的任務(wù)

  1. - (void)applicationDidEnterBackground:(UIApplication *)application 

  2. //定義要完成的任務(wù) ,開(kāi)始執(zhí)行,
  3. ......
  4.  
  5. //返回一個(gè)任務(wù)標(biāo)識(shí)
  6. self.backtaskIdentifier
  7. // do something 。。。
  8.  
  9. //結(jié)束該任務(wù)
  10. //將任務(wù)標(biāo)識(shí)符標(biāo)記為 UIBackgroundTasksInvalid,標(biāo)志任務(wù)結(jié)束

 如上代碼所示,我們?cè)谑褂枚嗳蝿?wù)的前提,一定是我們的系統(tǒng)支持多任務(wù),可見(jiàn)檢測(cè)任務(wù)的可用性是一項(xiàng)必不可少的步驟:

  1. - (BOOL) isMultitaskingSupported{ 
  2. result

 我們調(diào)用 beginBackgroundTaskWithExpirationHandler: (UIApplication的一個(gè)實(shí)例方法) 方法,為app 返回了一個(gè)token 或任務(wù)標(biāo)識(shí),那么我們必須調(diào)用  endBackgroundTask: (UIApplication的另一個(gè)實(shí)例方法)方法來(lái)結(jié)束該任務(wù).

在后臺(tái)任務(wù)的 完成處理者 (即beginBackgroundTaskWithExpirationHandler: 的塊函數(shù),)中,我們結(jié)束了任務(wù),并進(jìn)行必要的清理工作。

3、當(dāng)我們的app回到前臺(tái)的時(shí)候會(huì)調(diào)用- (void)applicationWillEnterForeground:(UIApplication *)application 方法,此時(shí)如果后臺(tái)任務(wù)還在進(jìn)行中我們就要結(jié)束他。

我想原理應(yīng)該已經(jīng)講清楚了。本人剛學(xué)不久,不當(dāng)之處敬請(qǐng)指出,以做修改,求共進(jìn)。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

網(wǎng)頁(yè)題目:ios在后臺(tái)完成一個(gè)長(zhǎng)期任務(wù)-創(chuàng)新互聯(lián)
URL地址:http://chinadenli.net/article14/cogige.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)網(wǎng)站營(yíng)銷云服務(wù)器外貿(mào)建站響應(yīng)式網(wǎng)站網(wǎng)站設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)