ios之申請後台延時執行和做乙個假後台的方法

2022-05-05 13:51:10 字數 2245 閱讀 7700

居然話sis hu ok.com違禁 嗨~~~   想看原文請把空格去掉

我們知道,到我們程式從前台退到後台(安home)鍵後,將執行程式的委託方法。

// 當應用程式掉到後台時,執行該方法

我們已經知道:

當乙個 ios 應用被送到後台,它的主線程會被暫停。你用 nsthread 的 detachnewthreadselector:totar get:withobject:類方法建立的執行緒也被掛起了。

我們假設有這麼一種情況:

當我們的應用程式從前台被送到了後台。

而實際中,我們可能需要更長的時間來完成我們的需要的必要操作:

1.我們需要在應用程式推到後台時,能夠有足夠的時間來完成將資料儲存到遠端伺服器的操作。

2.有足夠的時間記錄一些需要的資訊操作。

怎麼辦?!因為我們需要的時間可能會有點長,而預設情況下,ios沒有留給我們足夠的時間。

悲劇了……

總需要有乙個辦法來解決~~~~

向ios申請,在後台完成乙個long-running task任務

當乙個 ios 應用被送到後台,它的主線程會被暫停。你用 nsthread 的 detachnewthreadselector:totar get:withobject:類方法建立的執行緒也被掛起了。

預設情況下,如果在這個期限內,長期任務沒有被完成,ios 將終止程式。

怎麼辦?可以使用 beginbackgroundtaskwithexpirationhandler:例項方法,來向 ios 再借點時間。

既然是借時間,那麼就需要有一些約定俗成的方式。

先貼**吧:

宣告乙個 uibackgroundtaskidentifier ,相當於乙個借據吧。告訴ios,我們的程式將要借更多的時間來完成long-running task任務。

@property (nonatomic, unsafe_unretained) uibackgroundtaskidentifier backgroundtaskidentifier;

@property (nonatomic, strong) nstimer *mytimer;

即:[self endbackgroundtask];

// 當應用程式掉到後台時,執行該方法

// 當乙個 ios 應用被送到後台,它的主線程會被暫停。你用 nsthread 的 detachnewthreadselector:totar get:withobject:類方法建立的執行緒也被掛起了。

// 預設情況下,如果在這個期限內,長期任務沒有被完成,ios 將終止程式。

// 怎麼辦?可以使用 beginbackgroundtaskwithexpirationhandler:例項方法,來向 ios 再借點時間。

// 使用這個方法來釋放公共的資源、儲存使用者資料、停止我們定義的定時器(timers)、並且儲存在程式終止前的相關資訊。

// 標記乙個長時間執行的後台任務將開始

// 通過除錯,發現,ios給了我們額外的10分鐘(600s)來執行這個任務。

// 當應用程式留給後台的時間快要到結束時(應用程式留給後台執行的時間是有限的), 這個block塊將被執行

// 我們需要在次block塊中執行一些清理工作。

// 如果清理工作失敗了,那麼將導致程式掛掉

// 清理工作需要在主線程中用同步的方式來進行

[self endbackgroundtask];

// 模擬乙個long-running task 

self.mytimer =[nstimer scheduledtimerwithtimeinterval:1.0f

target:self

selector:@selector(timermethod:)     userinfo:nil

repeats:yes];

2.完成後,要告訴ios,任務完成,提交完成申請「好借好還」:

strongself.backgroundtaskidentifier = uibackgroundtaskinvalid;

- (void) endbackgroundtask else  else  else  else {

搞定~~~~

ios開發教程之申請更多後台時間

在ios應用及遊戲開發過程中,我們很多時候需要在使用者切換到後台工作的時候做一些操作,例如清除記憶體或者儲存使用者資料之類的。這些操作一般都在 現在我們就來看一下如何申請更多的後台時間.如下 申請失敗 if taskid uibackgroundtaskinvalid nslog backgroun...

iOS 上線加急申請

ipa包提交完成後可加急審核。廢話不多說,步驟如下 1,在i would like to裡選擇加急審核 2,然後填寫相關資訊 4,選擇原因,然後填寫理由。這裡要注意的是理由一般是使用者安全問題或者崩潰問題成功率會高一些 lz寫的是崩潰,不要說我是趕時間,蘋果會不同意,以前版本確實有崩潰問題,只不過不...

Ios證書申請流程

圖源網路,侵刪 l 需要用到mac l mac 應用程式 實用工具 鑰匙串訪問 l 點選鑰匙串訪問中的 證書管理 從證書頒發機構請求證書 彈窗中填寫 使用者電子郵箱位址 常用名稱 儲存到磁碟。l 明確儲存的檔案是不是cersigningrequest格式 l 回到鑰匙串,在 登陸 我的證書 中找到剛...