當我的android應用程序轉到後臺時,它可能會被系統關閉以回收資源。我能檢測到這一刻並運行一些代碼嗎?發生時是否有任何通知(方法稱爲)?當我的應用被系統關閉時,我的應用可以接收通知嗎?
回答
正確答案是 「NO」。當Android想要關閉應用程序以回收資源時,只需殺死您的進程。而已。沒有警告,沒有回調,根本沒有機會做任何事情。
執行onDestroy()
方法Activity
。
我相信OP想要捕獲進程關閉,而不是關閉活動。按回來會關閉活動,但會使應用程序繼續運行,前提是內存不足。 –
如果進程被Android終止,onDestroy()在進程中的任何活動上都沒有被**調用。他們只是走開。沒有警告。噗!不見了。 –
嘗試從本地(NDK/JNI)庫中捕獲SIGKILL。但是在信號處理代碼中你幾乎無法做任何有價值的事情;絕對不會回到Java世界。信號處理程序嚴重受* nix規則限制。
你想要完成的第一件事是什麼?所有明智的清理通常在活動終止代碼中執行(onDestroy()
)。在大多數使用情況下,流程生命週期不應該成爲您的問題,因爲它明確記錄爲不可預測。
我嘗試保存對象狀態以在下次啓動活動時恢復它。目前,我通過序列化將它保存在onSaveInstanceState中。我不喜歡它的事實是,每當我的活動從棧頂移出時(除了按下後退按鈕的情況),對象都會被序列化。所以我做了很多不必要的工作。我只想在進程被終止時保存對象。 –
不要保存到一個文件,保存到一個捆綁,像Android建議。堅持所述包(或將其保留在內存中)的規則取決於系統。總體來說,猜測系統是一件冒險的事情。 –
- 1. 當應用程序關閉時,我可以更改推送通知聲音嗎?
- 2. 當應用程序關閉時無法接收通知
- 3. 可以當我的應用程序被關閉
- 4. 當系統UIAlertView關閉時通知
- 5. 當我的應用服務器端口關閉時收到通知
- 6. 我可以在android中收集應用程序通知嗎?
- 7. 當新的一天開始時,我可以收到通知嗎?
- 8. 當應用程序關閉時收到通知
- 9. 當我關閉我的應用程序時,通知無法正常工作
- 10. 如何在應用程序關閉時接收推送通知?
- 11. 當我的系統凍結時收到通知
- 12. 當一個新的通知到達時,我的AlertDialoge被關閉
- 13. 當主應用程序關閉時關閉child nativeWindows(通過操作系統)
- 14. 應用關閉時的Firebase通知
- 15. 我可以通過我的桌面應用程序接收電子郵件嗎
- 16. 接收關閉應用的推送通知
- 17. 當應用程序關閉時從服務器接收推送通知
- 18. 當屏幕關閉時我的應用程序關閉
- 19. 當應用程序被銷燬時,@PersistenceUnit會關閉我的EntityManagerFactory嗎?
- 20. 我可以使用Robotium關閉外部應用程序嗎?
- 21. 我可以在我的GAE應用程序中收到關於錯誤的電子郵件通知嗎?
- 22. Slack + Heroku:每當我的Heroku應用程序關閉時發送通知給Slack
- 23. 我可以關閉當前分支嗎?
- 24. 使用離子關閉應用時收到通知
- 25. 當我關閉我的應用程序時,附加的信息被刪除
- 26. 如何通過使用SSE關閉應用程序時通知我的用戶?
- 27. 如果WP 8.1應用程序關閉,我們可以收到Raw推送通知嗎?
- 28. 我的應用程序關閉時可以使用GPS獲取位置嗎?
- 29. 我可以在普通的無根電話上測試android系統應用嗎?
- 30. UILocalNotification仍顯示當應用程序通知中心被關閉
順便說一句:弱接受比率,隊友。 –