0
我試圖重置我的iOS應用程序的狀態,當它在後臺(比如說)30秒後變爲活動狀態時。在一段時間後重置iOS應用程序
我知道如何在plist中設置Application does not run in background mode
和UIApplicationExitsOnSuspend
,但這會立即重置應用程序的狀態,而不是一段時間後。在應用程序在後臺運行一段時間之後,有沒有辦法觸發它?
我試圖重置我的iOS應用程序的狀態,當它在後臺(比如說)30秒後變爲活動狀態時。在一段時間後重置iOS應用程序
我知道如何在plist中設置Application does not run in background mode
和UIApplicationExitsOnSuspend
,但這會立即重置應用程序的狀態,而不是一段時間後。在應用程序在後臺運行一段時間之後,有沒有辦法觸發它?
在AppDelegate applicationDidEnterBackground:將在應用程序進入後臺時調用。您保存enterBackGroundTime這裏
- (void)applicationDidEnterBackground:(UIApplication *)application;
,當它進入前景applicationWillEnterForeground:
(如果在後臺前臺應用程序)或- (BOOL)application:didFinishLaunchingWithOptions:
(如果應用程序死亡,再次推出)將調用。在這裏你得到enterForeGroundTime
- (void)applicationWillEnterForeground:(UIApplication *)application;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;
你算enterBackGroundTime和enterForeGroundTime之間的差異得到它
如何「差異化」?我不認爲這是一個最佳的方法反正...應該有一個計時器的地方... – rkh
enterBackGroundTime = [NSDate date];和enterForeGroundTime = [NSDate date] ;.您可以使用NSDate timeIntervalSinceDate:以秒爲單位獲得差異。 – larva
:)也許它不是最佳方法,但它可以解決您的問題 – larva