簡體   English   中英

從iphone 3.1中的應用程序內部更新設置對重新啟動應用程序有效-在iOS4中不起作用

[英]updating settings from within app in iphone 3.1 effective on re-launch of app - does not work in iOS4

我正在為iPhone OS 3.1開發一個應用程序。 在應用程序中,我具有“設置”選項卡,用戶可以在其中更新一些值,這些值在應用程序終止並重新啟動時有效。

現在,我已經構建了這個應用程序,其中基本SDK設置為“設備4.0”,部署目標為“ iOS 3.1”,因為我不想失去iOS 3.1用戶群。

在iphone模擬器3.2上運行此版本的應用程序,我沒有任何問題。

為了測試應用程序是否已將iPhone OS 3.1升級到iOS4,我在iphone Simulator中的設備“ iPhone”和版本“ 4.0”上運行此版本。 由於iOS4中的“應用程序多任務處理”,當我按“主頁”按鈕時,我的應用程序不會“終止”,而是(按預期)它在后台運行,並按應用程序圖標,它又回到前台。

所有這些都很好,當用戶在應用程序內更改設置時出現問題,按“主頁”將不會終止應用程序...。因此新設置將無效,因為應用程序不會重新啟動,但只會返回“前景” ....實際上,除非用戶明確終止應用程序,否則該應用程序可能永遠不會終止。

在不使用iOS4 API的情況下,如何確定應用何時“重新啟動”以及何時進入“前景”,以便當應用在“前景”中移動時我可以強制重新讀取設置?

提前致謝。

為了在后台處理應用程序設置中的更改,您將需要監聽NSUserDefaultsDidChangeNotification並通過更新應用程序受更改設置影響的部分來對此做出響應。 當您的應用程序重新進入前台時,如果該應用程序的任何設置在掛起期間已更改,它將收到此通知。

例如,您可以使用以下代碼在一個控制器中偵聽此通知:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleChangeInUserSettings:) name:NSUserDefaultsDidChangeNotification object:nil];

其中-handleChangeInUserSettings:是一種方法,您可以在其中執行反映已更改的用戶設置所需的更新。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM