有一位客戶向我發送了關於我的應用程序部隊在啓動後關閉的反饋,因爲他用任務殺手殺死了應用程序。我告訴他任務殺手是危險的,對手機性能沒有任何好處,因爲Android不會將RAM作爲Windows管理,但他不會卸載Task Killer。任務完成後開始強制關閉開始應用程序
力閉合是這樣的:
A)用戶使用我的應用程序通常
B)的用戶任務殺死我的應用程序
C)用戶啓動我的應用程序再次
d)啓動時關閉力
E)用戶再次啓動我的應用程序
F)一切按預期工作
我發現問題是我的靜態對象變爲空,因爲它們從內存中清除,導致強制關閉應用程序的NullPointerExceptions。但是,我有很多地方訪問這些靜態對象(如果這不是我不會使用靜態對象的情況),所以NullPointerExceptions可能發生在很多地方。
此行爲僅發生在Android 2.3.7或更低版本中。 Android 4.0自己的任務殺手(您可以通過長時間的Home訪問)殺死應用程序,然後在沒有任何關閉的情況下啓動應用程序。
我該如何規避這種行爲?
把你的應用程序日誌和啓動代碼。 –
他沒有提交日誌,但基本上應用程序試圖啓動它被暫停的地方,並且每當它試圖獲得一個靜態對象時,NPE就會關閉。 主要的問題是異常不會在同一個地方被捕獲:它引發你訪問的最後一個Activity,使得異常處理更加麻煩。 – razielsarafan
你有你的應用程序代碼?嘗試在您的位置執行相同的步驟,通過Log.e或Log.d獲取日誌,然後將其發佈到此處。也放一些代碼,否則沒有人可以幫助你。 –