它是android中的内存泄漏吗?

时间:2015-08-22 04:39:18

标签: android memory-leaks

我创建了两个活动的简单应用程序,在这两个活动中都有一个链接到另一个活动的按钮。

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.two);
    Button btn = (Button) findViewById(R.id.button);
    btn.setOnClickListener(this);
}

@Override
public void onClick(View view) {
    if (intent != null) intent = null;
    intent = new Intent(Two.this,MainActivity.class);
    startActivity(intent);
}

在这两个活动中都有相同的代码。当我按下按钮并在DDMS中按原因GC时,分配的总是增加25kb这是正常的吗?

1 个答案:

答案 0 :(得分:1)

我不会称之为内存泄漏,但概念不佳。你正在做的是将活动放在堆栈上,当然,这会占用越来越多的内存。如果您只想打开上一个活动(因此每次调用startActivity(...)时都不会创建新活动),请使用以下命令:

Intent intent = new Intent(Two.this, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent);

如果您想了解有关任务和后台的更多信息,请访问this guide