我不太明白如何开始新活动以及如何在执行此操作时释放内存。
这就是我所拥有的:
Button b1, b2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
setContentView(R.layout.activity_main);
setReferences();
}
private void setReferences() {
b1= (Button) findViewById(R.id.b1);
b2= (Button) findViewById(R.id.b2);
b1.setOnClickListener(this);
b2.setOnClickListener(this);
}
@Override
public void onClick(View v) {
Intent newActivity;
switch (v.getId()) {
case R.id.b1:
newActivity = new Intent("com.sblasblasbla.PLAYACTIVITY");
startActivity(newActivity);
break;
case R.id.b2:
newActivity = new Intent("com.sdasdsadsa.THIRDACTIVITY");
startActivity(newActivity);
break;
}
}
}
但是当我去另一个活动时我想要释放内存,如果我按下后退按钮(返回)来保存我的活动布局(带背景和按钮等)我的意思是不要删除它们
我怎样才能有效地做到这一点?我听过onStop和onDestroy的内容,但我不知道它们是如何工作的。此外,如果我销毁活动,它再次调用onCreate?
答案 0 :(得分:0)
没有什么需要专门用来释放内存。 Android系统将自动垃圾收集对象,这些不再需要。
这取决于几个因素,例如,没有。当前运行的应用程序,可用的RAM数量等等。但仍然可以给这个post一个很好的阅读。
答案 1 :(得分:0)
除非您在静态变量,服务或应用程序中泄漏指向活动的指针,否则Android将在需要时自动释放内存。这可能只是在您离开活动时,或者可能是稍后(包括从不)。您可以查看this article以获取更多信息。
要保存和恢复您的活动状态(不是布局,不需要保存并使用setContentView
进行恢复),您可以使用onSaveInstanceState
和onRestoreInstanceState
。