2011-08-11 232 views
1

有沒有辦法殺死後臺應用程序?iphone殺死後臺應用程序

我有一個應用程序,我正在工作,記錄一個聲音,然後在滾動視圖上繪製出它與我有關的問題是它崩潰,如果記錄太長,因爲它耗盡內存試圖繪圖它。我的解決方法是監視可用內存的數量,並預測有多少內存使用情況繪圖將在沒有足夠的時間之前停止錄製。問題在於,我在後臺運行的應用程序越多,停止錄製就越快,而不是殺死後臺應用程序,以使ios在didRecieveMemoryWarning之前執行操作。重申我的問題如何殺死這些後臺應用程序?蘋果會對此皺眉嗎?

+4

我認爲如果你需要問這個問題,你的設計就壞了。你應該從你的模型中分離你的視圖,並給予前者足夠的智能來處理低內存警告。對於它可以顯示的視圖,UITableView基本上是一樣的。 – Tommy

回答

5

你想殺死其他後臺應用程序從您的前臺應用程序編程?我懷疑蘋果會對此皺眉。

從理論上講,你可以從sysctl獲得他們的進程ID,併發送一個SIGKILL來終止它們,但是iOS won't let you可以獲得有關其他進程的信息,除非你是root用戶(意味着越獄)。

+0

這是一個恥辱,我希望這會像調用系統例程一樣簡單。好吧,我想我將不得不使它陰謀,因爲它記錄我猜這將更好看。謝謝。 – Daniel

+0

您也可以在第二次收到內存警告時停止錄製。在第一次警告時釋放你所能做的,但在第二次警告時停止(或者甚至可以嘗試等待第三次警告) – progrmr

+0

只要合法地獲取進程ID,就可以查看http://www.macstories。 net/reviews/appswitch-cool-process-management-app-for-iphone /我認爲他們正在使用URL方案數據庫和ASL日誌的組合。 – Jano

1

iOS會在開始發送內存警告的同時開始終止未使用的後臺應用程序本身。但是你根本不應該得到內存警告,而是嘗試修復你的內存管理。

1

殺死後臺應用程序無法解決您的問題。即使所有其他應用程序都被殺死了,您的應用程序在一段時間後仍會崩潰

考慮使用一個小緩衝區來存儲這些數據並定期寫入存儲。當用戶需要向後滾動並閱讀較舊的記錄時,請從存儲中將其讀回。通過限制窗口大小,應用程序將只使用一定量的內存。