我创建了两个活动的简单应用程序,在这两个活动中都有一个链接到另一个活动的按钮。
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这是正常的吗?
答案 0 :(得分:1)
我不会称之为内存泄漏,但概念不佳。你正在做的是将活动放在堆栈上,当然,这会占用越来越多的内存。如果您只想打开上一个活动(因此每次调用startActivity(...)
时都不会创建新活动),请使用以下命令:
Intent intent = new Intent(Two.this, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent);
如果您想了解有关任务和后台的更多信息,请访问this guide。