天天看點

iOS開發簡單的實作背景任務(諸如背景播放音樂,定時器等)

直接上代碼

在appdelegate的.m中的進入背景時加入一些代碼操作即可

/**
 *  當app進入背景時調用
 */
- (void)applicationDidEnterBackground:(UIApplication *)application
{
    /**
     *  app的狀态
     *  1.死亡狀态:沒有打開app
     *  2.前台運作狀态
     *  3.背景暫停狀态:停止一切動畫、定時器、多媒體、聯網操作,很難再作其他操作
     *  4.背景運作狀态
     */
    // 向作業系統申請背景運作的資格,能維持多久,是不确定的
//    self.task = [application beginBackgroundTaskWithExpirationHandler:^{
//        // 當申請的背景運作時間已經結束(過期),就會調用這個block
//        
//        // 趕緊結束任務
//        [application endBackgroundTask:self.task];
//    }];
    __block UIBackgroundTaskIdentifier task = [application beginBackgroundTaskWithExpirationHandler:^{
        // 當申請的背景運作時間已經結束(過期),就會調用這個block

        // 趕緊結束任務
        [application endBackgroundTask:task];
    }];
    
    /**
    1.定義變量UIBackgroundTaskIdentifier task
    2.執行右邊的代碼
    [application beginBackgroundTaskWithExpirationHandler:^{
        // 當申請的背景運作時間已經結束(過期),就會調用這個block
        
        // 趕緊結束任務
        [application endBackgroundTask:task];
    }];
     3.将右邊方法的傳回值指派給task
     */
    
    
    // 在Info.plst中設定背景模式:Required background modes == App plays audio or streams audio/video using AirPlay
    // 搞一個0kb的MP3檔案,沒有聲音
    // 循環播放
    
    // 以前的背景模式隻有3種
    // 保持網絡連接配接
    // 多媒體應用
    // VOIP:網絡電話
}
           

繼續閱讀