2013-03-23 49 views
0

我有一個棘手的問題。在我的應用程序中,用戶可以更改他是否希望應用程序在後臺運行。如果是的話 - 它應該工作,直到用戶殺死它。如果沒有 - 它應該工作,直到用戶按下home按鈕,並且應該在用頂部按鈕鎖定屏幕之後工作。瞭解iPhone應用背景狀態

因此,在plist文件中有一行叫做「應用程序不在後臺運行」。如果我使它成爲「是」 - 應用程序運行,直到主頁按鈕被按下,並且鎖定屏幕後仍然工作。完善。如果我使它成爲「否」 - 應用程序一直運行,直到我殺死它。完善。

但我想你不能改變應用程序的plist值。好吧,我已經找到一種方法來做到這一點與applicationDidEnterBackground:

if (userDontWantItRunInBackground) { exit(0); } 

但是有一個問題與(除了蘋果不推薦):

if "application does not run in background" = YES: 

applicationDidEnterBackground is NOT CALLED on locking the screen 

if "application does not run in background" = NO: 

applicationDidEnterBackground is CALLED on locking the screen 

這是沒有意義的!這不允許我在鎖定的屏幕上運行應用程序!

回答

0

在iOS 4中,如果您的應用程序需要,您無法避免空閒時間睡眠。

[[UIApplication sharedApplication] setIdleTimerDisabled:YES]; 

這裏是關於後臺執行iOS中的詳細信息:

enter image description here

More: