我的应用程序包含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. 摧毁整个AVL树
- 8. 如何杀死应用程序从Android的任何活动
- 9. Android活动完成方法杀死应用程序
- 10. 如何杀死android应用程序中的所有活动?
- 11. Android杀死活动,但不是应用程序本身
- 12. 当摧毁一个记录,另外一个被摧毁
- 13. Android销毁活动,查杀进程
- 14. 无法摧毁Android的活动
- 15. 如何杀死一个应用程序?
- 16. 黑莓:杀死一个应用程序
- 17. Android:杀死后台活动
- 18. 重塑整个活动堆栈的应用程序被杀害
- 19. 在C中杀死一个pthread而不杀死整个进程
- 20. 线程仍然runnng后摧毁活动
- 21. Android Honeycomb Home Button杀死应用程序
- 22. 应用程序杀死Android后恢复
- 23. 应用程序杀死onBackPressed android
- 24. OnClick方法杀死Android应用程序
- 25. 在Android中杀死应用程序
- 26. Android Process.killProcess(pid)是否会杀死进程或整个应用程序?
- 27. 以编程方式在Android上杀死相机应用程序
- 28. “摧毁”不生产 - Rails应用程序
- 29. 端应用程序不呼吁摧毁
- 30. '从沙盒应用程序中杀死一个应用程序?
是的,我注意到that.My的问题是将Android应用程序杀的过程,如果它的所有活动都被破坏? – undefined
是的,如果你的所有活动都被破坏了,你的申请程序将被杀死。 –
非常感谢!您能否将此添加到您的答案中,以便将其标记为已接受? – undefined