我的應用程序包含2個活動,它們都依賴於一些靜態對象。我很好奇,如果兩個活動都被銷燬(例如設備用完mem),android會終止整個應用程序並清理靜態字段?Android:殺死每個活動相當於摧毀整個應用程序?
1
A
回答
2
讓我們從一點背景開始:當你啓動一個應用程序時會發生什麼? 操作系統啓動一個進程併爲其分配一個唯一的進程ID並分配一個進程表。一個進程啓動一個DVM實例(Dalvik VM);每個應用程序在DVM中運行。 一個DVM管理類加載卸載,實例生命週期,GC等。
靜態變量的生存期:靜態變量在類被JVM加載時死亡並在類卸載時死亡。
因此,如果您創建一個Android應用程序,並初始化靜態變量,它會留在JVM中,直到發生下列情況之一:
類被卸載
JVM關閉
過程中死亡
請注意,當您切換到其他應用程序的不同活動時,靜態變量的值將保持不變,並且上述三項都不會發生。如果上述三種情況發生,靜態將失去其價值。
您可以用幾行代碼測試:
打印未初始化的靜態在活動的onCreate - >應打印空
初始化靜態。打印它 - >值將是非空
點擊後退按鈕並進入主屏幕。注意:主屏幕是另一項活動。
再次啓動你的活動 - >靜態變量爲非空
殺死從DDMS您的應用程序(在設備窗口停止按鈕)。
重新啓動您的活動 - >靜態將具有空值。
您的問題的答案。 是的,如果你的所有活動都被破壞了,你的申請程序將被殺死。
現金Samuh
相關問題
- 1. 殺死單個活動Android應用程序
- 2. Android:殺死第三個應用程序
- 3. onBackPressed在一個活動中殺死一個處理程序 - Android
- 4. 如何殺死Android上的整個應用程序?
- 5. 在android中殺死一個活動
- 6. android如何殺死另一個活動?
- 7. Android活動完成方法殺死應用程序
- 8. 如何殺死android應用程序中的所有活動?
- 9. 如何殺死應用程序從Android的任何活動
- 10. Android殺死活動,但不是應用程序本身
- 11. 當摧毀一個記錄,另外一個被摧毀
- 12. Android銷燬活動,查殺進程
- 13. 無法摧毀Android的活動
- 14. 黑莓:殺死一個應用程序
- 15. 如何殺死一個應用程序?
- 16. Android:殺死後臺活動
- 17. 重塑整個活動堆棧的應用程序被殺害
- 18. 在C中殺死一個pthread而不殺死整個進程
- 19. 線程仍然runnng後摧毀活動
- 20. 在Android中殺死應用程序
- 21. 應用程序殺死Android後恢復
- 22. Android Honeycomb Home Button殺死應用程序
- 23. 應用程序殺死onBackPressed android
- 24. OnClick方法殺死Android應用程序
- 25. Android Process.killProcess(pid)是否會殺死進程或整個應用程序?
- 26. 以編程方式在Android上殺死相機應用程序
- 27. 端應用程序不呼籲摧毀
- 28. 「摧毀」不生產 - Rails應用程序
- 29. '從沙盒應用程序中殺死一個應用程序?
- 30. 用主鍵殺死一個Android應用程序
是的,我注意到that.My的問題是將Android應用程序殺的過程,如果它的所有活動都被破壞? – undefined
是的,如果你的所有活動都被破壞了,你的申請程序將被殺死。 –
非常感謝!您能否將此添加到您的答案中,以便將其標記爲已接受? – undefined