2011-06-28 56 views
0

有人注意到這種奇怪的行爲嗎?我無法將其重現爲100%,但它發生了很多。我甚至不確定這是否與低內存警告有關。接收到低內存警告後GPS跟蹤不起作用?

如何(有時)複製:(在iPhone 4的iOS 4.3.3,所有的應用程序都UIBackgroundModes = location這麼多任務處理是完全啓用)

  1. 開始第一次GPS跟蹤應用程序(App A)。開始追蹤
  2. 開始第二個GPS追蹤應用(應用B)。開始追蹤
  3. 啓動第3個GPS追蹤應用程序(應用程序C)。開始跟蹤
  4. 步行距離酒店100米
  5. 站在原地
  6. 開始另一個GPS應用程序,它是多一點的內存和CPU密集型
  7. 轉身走100 m返回
  8. 停止所有GPS跟蹤應用程序,看看被跟蹤的跟蹤結果

結果:

應用b和C b他成功跟蹤了整整200米。但應用程序A(我開始的第一個應用程序)只跟蹤了100米(到第5點,我開始了第4個GPS應用程序)。

應用程序A沒有崩潰。當我切換回來時,它仍在運行(沒有低內存崩潰日誌或正常的崩潰日誌,沒有任何內容)。它沒有收到位置更新,直到我重新啓動應用程序。

然後,我做了另一個嘗試相同的設置。但是這一次App A,B和C都跟蹤了200米。

所以我唯一的解釋是應用程序A在低內存警告(可能是level = 2?)後不再接收任何位置更新。

對這種奇怪的行爲還有其他解釋嗎?如何修復我的應用程序(應用程序A),以便在停止位置更新後繼續接收位置更新? (重新啓動位置管理器的計時器並沒有幫助)

+0

這不是一個編程問題 –

+0

@Chris你爲什麼這麼說?幾乎可以肯定的是,OP有辦法爲他解決這個問題,但我們只需要弄清楚它是什麼。 :) –

+0

@Chris:非常仔細地閱讀這個問題。這不是關於編程,而是一個編程問答網站。我們確實可以提供幫助,但這不是適合這類問題的地方。 –

回答

0

從我所看到的情況來看,如果您獲得2級低內存警告,操作系統會很快殺死有問題的應用程序。在GPS報告被阻止的地方可能存在一個級別,但我對此表示懷疑。

它是否始終是第一個沒有跟蹤的應用程序(在您的示例中爲應用程序A)?

+0

是的,它似乎是它是第一個不跟蹤的應用程序。 – Buju

+0

嗯。我建議在應用程序A中放置一些'NSLog()',在那裏它收集數據並從那裏進行故障排除。內存警告級別2是您想要追蹤的內容。 –