活动实例的生命周期

时间:2012-07-11 13:44:23

标签: android android-activity android-lifecycle

我有以下活动:

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 被调用后?

1 个答案:

答案 0 :(得分:0)

如果在您的调用者活动中,您调用了finish()方法,则由于您已完成调用者活动,因此之前活动的任何实例都不会处于活动状态。所有实例都将被垃圾收集。

但是如果你的调用者活动没有调用finish(),那么活动将不再可见,但它将出现在操作系统维护的活动堆栈上。当设备内存不足时,调用者活动(即先前的活动)可以完成,例如,如果活动调用Camera(需要丰富的资源),那么之前的活动可能会被破坏。

因此,在您的情况下,即使StartActivity不是当前可见活动,变量也将处于活动状态。