2011-12-26 90 views
4

我使用iOS SDK 5.0在Xcode 4.2上編寫了一個應用程序。應用程序仍在後臺運行Xcode 4.2 iOS 5

我已經將info.plist中的UIApplicationExitonsuspend設置爲YES,但是當我雙擊主頁按鈕時,應用程序仍處於多任務欄中。

我已經從我的iPhone 4s中刪除了該應用程序,並再次從Xcode重新發送,但暫停時退出仍然無效。應用程序仍然在多任務選項卡上。

+1

只是因爲應用程序是在酒吧並不意味着它仍在運行。 'applicationWillTerminate:'被調用了嗎? – 2011-12-26 15:51:22

+1

@FrederickCheung是applicationWillTerminate:被調用。如果你也可以回答我在sergio給出的答覆下發表的評論,那將會有很大的幫助。謝謝! – at0m87 2011-12-26 20:58:16

回答

4

您的應用圖標顯示在「多任務標籤」中並不意味着您的應用仍然存在。

「多任務選項卡」只顯示您運行的所有應用程序的列表。

一個簡單的方法來評估,如果當你觸摸它的應用程序被重新推出,是通過執行以下步驟:

  1. 啓動您的應用程序;

  2. 按Home鍵關閉它;

  3. 重新啓動應用程序並檢查啓動時顯示的圖像。如果這張圖片是你的「Default.png」圖片,那麼應用程序重新啓動。如果您發現您的應用程序處於您離開它的狀態,那麼該應用程序會再次處於活動狀態(即,它位於後臺)。

更先進的方法,看看當您啓動您的應用程序放在一個NSLog痕跡在你的應用程序委託方法會發生什麼:

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


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

如果你會看到打印出來的痕跡,那麼就意味着該應用程序在暫停時不會退出。

相反,你可以把一絲:

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

,如果它被稱爲當您按下home鍵,然後應用程序沒有進入後臺狀態,而它退出。

+0

好的,注意點!我試過了,就像你說的那樣。感謝你指出了我。但我很困惑,爲什麼應用程序,即使你已經退出並不再運行,仍然徘徊在多任務選項卡上,僞裝成仍在後臺運行的應用程序?因爲從邏輯上講,處於多任務標籤欄意味着它仍然在後臺運行。因此從邏輯上看,它仍然存在,但我知道它已不再運行 - 來自調試器的證明。 – at0m87 2011-12-26 20:55:45

+0

我明白你的觀點。我認爲這只是蘋果試圖讓用戶感覺所有應用程序都是多任務感知的,即使它們不是。對於最終用戶而言,所有帳戶都更易於理解。但這只是我的猜測... – sergio 2011-12-26 21:22:59

+0

謝謝你的迴應。通過說,你是說程序員絕對沒有辦法讓他的應用程序從多任務欄中消失,因爲這是蘋果的方式?對不起,如果我看起來有點問題,我是一個很好奇的人=) – at0m87 2011-12-28 15:12:13

0

如果您希望您的應用程序不會在後臺模式下運行。執行以下操作: - 打開您的應用程序info.plist,然後添加其他屬性: - 「應用程序不在後臺模式下運行」,並確保爲該屬性選中複選框。現在保存,重新生成並再次運行您的應用程序。通過這樣做你的應用程序不會在後臺模式下運行。

+0

謝謝你的回答作品也是=) – at0m87 2011-12-28 15:12:49

0

「應用程序在後臺模式下不運行」和「UIApplicationexitonsuspend」是相同的密鑰