假设我有3项活动 Demo1 , Demo2 , Demo3 以及 GlobalClass
类GlobalClass
public Class GlobalClass{
public static int staticVar = 1;
}
demo1的
public Class Demo1 extends Activity{
onCreate(){
if(buttonClicked = 1){
openDemo2();}
else{
openDemo3();}
}
}
DEMO2
public Class Demo2 extends Activity{
int var = 10;
onCreate(){
GlobalClass.staticVar = var;
}
}
Demo3
public Class Demo3 extends Activity{
onCreate(){
int var = GlobalClass.staticVar;
}
}
所以现在假设我们在Demo1,我们首先打开Demo2。然后我们关闭Demo2,回到Demo1并打开Demo3。然后我们关闭Demo3并回到Demo1。
所以此时哪些活动/活动将在记忆中 GC之后?
是否保存了该活动的整个视图(该活动的布局) 在记忆中?
静态变量会有什么不同吗?
答案 0 :(得分:0)
您无法假设有关GC的任何具体信息。它基于过程的需求和对象的使用。请注意,GC与Android的低内存处理不同,后者将完全拆除并销毁未使用的进程。在您的Demo1示例中 - >演示2 - > Demo3有可能没有回收或垃圾收集。当Demo1启动Demo2时,Demo1暂停并停止,但仍然驻留在应用程序进程的内存中。当Demo2退出并返回Demo1时,Demo2通过BACK按钮退出(导致onDestroy()
被调用),然后Demo2及其相关内存应该通过GC。但是,它还取决于你在Demo2中做了什么。如果你不小心的话,完全有可能意外泄漏物体。