0

作爲參考,這是在Android上,一段時間後,這是Titanium Forum Post鈦移動應用程序崩潰的背景(包括服務)

我注意到幾個應用程序我已經做了這個問題Appcelerator,他們都是:無論他們是簡單的應用程序還是複雜的應用程序,但在更大的應用程序中更頻繁。

例如,我正在研究需要每5分鐘通知其位置(GPS位置)的應用程序。在前臺工作時,應用程序運行良好,但是,每次將應用程序放在後臺時(如果我通過使用「主頁」按鈕最小化應用程序),應用程序就會崩潰,所有服務都會停止。

通知的應用,這裏是我使用的流程:

  1. 當我啓動應用程序,我開始報警,使用AlarmManager module
  2. 這個AlarmManager增加了一個新的報警服務,每5分鐘觸發一次。
  3. 每5分鐘,AlarmManager啓動服務並通知服務器當前位置。

這很好。

如果我點擊「主頁」按鈕,應用程序有時會崩潰(在應用程序管理器上),但在前臺使用其他應用程序時會更頻繁,而將此應用程序保留在背景上。

我以爲這是因爲主要的活動已停止,所以我決定用android:alwaysRetainTaskState="true"

如果我重新打開應用程序,以保持主要活動/任務狀態下,應用程序只是重新啓動。這種情況在低端設備上比在高端設備上更多,這使我認爲這是一個內存問題。

我有一些問題:

  1. 這是預期的行爲?
  2. 如果是這樣,我該如何緩解這種情況(可能是本地模塊/服務?)?
  3. 目前我的流量是否是最好的流量?還是有更好的方法?

任何想法都不勝感激。

+0

它會在實際設備上還是在仿真器上崩潰? – Rece

+0

您好!它在實際的設備上崩潰,更有可能在運行或執行其他幾個應用程序時崩潰(這使我認爲這是一個內存問題)。它只發生在做位置報告時,順便說一句。 – demogar

+0

dang。很抱歉聽到這個消息。之前我曾經遇到過這種棘手的情況。唯一對我有用的東西是去除了任何看起來太複雜/拙劣的東西,並試圖以不同的方式去做。希望你弄明白! – Rece

回答

0

回答我自己的問題:經過很多測試後,我們發現問題在舊設備上更頻繁。

通過檢查組件,元素並進行極爲深刻的內存研究,我們發現實際上Android必須管理應用程序和內存。

如果操作系統決定您的應用程序在後臺佔用太多內存,它可以隨時刪除它。無論它是否執行警報。

對於具有更多內存(較新設備)的設備,問題就會消失。

相關問題