2012-11-02 63 views
0

有沒有像這樣的方法:wasTerminated或類似的東西?如果他從多任務中完全關閉了應用程序,我想向用戶顯示警報。目前我在DidEnterBackround中實現了我的代碼,但有沒有其他解決方法?這對我來說非常有用。如果應用程序在多任務中關閉,是否有方法?

對不起,我是一個新手,我沒有找到一個解決方案在網上。

謝謝。

+0

我不是100%,但我敢肯定,從多任務欄中殺死一個應用程序實際上是「殺死」進程,這意味着唯一的技術解決方案將是POSIX控制信號處理程序,它我不認爲蘋果允許我們註冊。 –

+0

應用程序在多任務關閉後不能執行任務,除非他們有特殊權限執行最小的後臺執行(例如,郵件應用程序)。即使如此,我認爲你僅限於非UI功能(換句話說,UIActionSheet可能不會飛)。也許你會對推送通知有興趣? –

回答

2

後臺應用程序可以在任何時候終止,應用程序無法判斷它是由用戶(通過多任務切換器)還是由系統終止。

您唯一的通知是-applicationDidEnterBackground :, -applicationWillEnterForeground:和-application:didFinishLaunchingWithOptions :.通過這些通知,您可以確定是否完成了一些後臺任務,但是無法確定您的應用程序是如何終止的。

+0

嗯...好吧,但有沒有辦法讓本地通知只彈出一次?那是我真正的問題,我認爲這可以幫助我,但正如你可以看到它不可能。有沒有辦法顯示用戶只能獲取一次的通知?如果需要,我可以在我的問題下粘貼一些代碼...謝謝 – MasterRazer

+0

你的意思是UILocalNotification?你應該創建一個新的問題並具體詢問。 – Darren

+0

你能幫我嗎? – MasterRazer

0

是否要向用戶顯示消息,下次用戶何時啓動應用程序或應用程序何時死亡。如果通過雙擊主頁按鈕並殺死應用程序而終止應用程序,並且如果您想查找,那麼這是不可能的。

但是,如果應用程序被殺害,並且用戶再次啓動應用程序,那麼您將知道該應用程序是新鮮啓動還是啓動。

的方法

-(void)applicationWillEnterForeground:(UIApplication *)application{ 
NSLog(@"Entering foreground"); 

}

,如果它變得活躍,從背景將被調用。

其他明智的,

- (void)applicationDidBecomeActive:(UIApplication *)application { 
} 

將被調用,你可以把你的警報視圖。

你可以很容易地嘗試這些情況,找出一種方法去做你想做的事。

相關問題