iOS-關於如何知道應用被殺死並做相應處理


需求:由於近期項目需求,用戶行為不可控,某些用戶在執行某些操作之后,強行殺死應用,導致部分統計數據沒辦法實時上傳。所以需要在用戶殺死應用的時候,將當前統計的數據上傳到服務器(不持久化的數據)。

經過在網上尋找答案,和自己的驗證。

在appdelegate中去實現兩個api

-(void)applicationDidEnterBackground:(UIApplication *)application {

    NSLog(@"didenterbackgroud");
    [[UIApplication sharedApplication]beginBackgroundTaskWithExpirationHandler:^{
        NSLog(@"auto kill app!");
    }];
}

-(void)applicationWillTerminate:(UIApplication *)application {
    NSLog(@"kill app !!!!");
}

兩個方法配合使用。如果不實現

beginBackgroundTaskWithExpirationHandler

應用先退到后台,再殺應用,則不會調用

applicationWillTerminate

在應用界面的界面喚起直接殺死應用會調用

applicationWillTerminate

如上兩個方法和一個block配合使用,則無論應用以什么方式被殺死都會調用

applicationWillTerminate

當應用被用戶退到后台,一定時間之后會自動調用

beginBackgroundTaskWithExpirationHandler


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM