2014-02-25 37 views
0

我試圖重置我的iOS應用程序的狀態,當它在後臺(比如說)30秒後變爲活動狀態時。在一段時間後重置iOS應用程序

我知道如何在plist中設置Application does not run in background modeUIApplicationExitsOnSuspend,但這會立即重置應用程序的狀態,而不是一段時間後。在應用程序在後臺運行一段時間之後,有沒有辦法觸發它?

回答

2

在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之間的差異得到它

+0

如何「差異化」?我不認爲這是一個最佳的方法反正...應該有一個計時器的地方... – rkh

+0

enterBackGroundTime = [NSDate date];和enterForeGroundTime = [NSDate date] ;.您可以使用NSDate timeIntervalSinceDate:以秒爲單位獲得差異。 – larva

+0

:)也許它不是最佳方法,但它可以解決您的問題 – larva

相關問題