我有以下活动:
public class StartActivity extends Activity
{
String str = "somestring";
int number = "1";
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// Code here
}
}
我在Android文档(http://developer.android.com/reference/android/app/Activity.htm l)
上阅读了以下内容如果某项活动被另一项活动完全遮挡,则会停止该活动。它仍然保留所有状态和成员信息,但是,它不再对用户可见,因此其窗口被隐藏,并且当其他地方需要内存时,它通常会被系统杀死。
这是否意味着我的班级实例( str 和数字)是“活着的”且可用,除非调用 onDestroy 或需要内存在 onPause 或 onStop 被调用后?
答案 0 :(得分:0)
如果在您的调用者活动中,您调用了finish()
方法,则由于您已完成调用者活动,因此之前活动的任何实例都不会处于活动状态。所有实例都将被垃圾收集。
但是如果你的调用者活动没有调用finish()
,那么活动将不再可见,但它将出现在操作系统维护的活动堆栈上。当设备内存不足时,调用者活动(即先前的活动)可以完成,例如,如果活动调用Camera(需要丰富的资源),那么之前的活动可能会被破坏。
因此,在您的情况下,即使StartActivity
不是当前可见活动,变量也将处于活动状态。