当我创建一个意图:
Intent in = new Intent(this, myclass.class);
this.startActivity(in);
我创建了一个新的Intent但是最后一个Intent没有被破坏 它还在记忆中 我怎么能杀死这最后的毁灭?
所以我想在两个不同的类中创建两个Intent: 在第一节课我写这个:
Intent in1 = new Intent(this, myclass2.class);
this.startActivity(in);
在第二节课我写这个:
Intent in2 = new Intent(this, myclass1.class);
this.startActivity(in2);
但是当我点击in1将创建并且in2将会破坏,当我点击in2时,in2将创建并且in1将被破坏。
想要清理手机内存。
答案 0 :(得分:8)
您可以通过覆盖这样的后退键功能来阻止用户转到上一个Activity
:
public void onBackPressed() {
//doing nothing on pressing Back key
return;
}
虽然不鼓励这种方法。并且大家都知道,Activity
会在内存需求出现某些方面时自动被杀死。你不能随意销毁一个Activity
。
虽然对于像欢迎启动画面这样的特定情况,您可以执行以下两项操作之一:
1)当你移动时,在当前finish()
上调用Activity
方法
您的新Activity
(通常在使用Thread
时完成。)
2)在manifest
中使用以下内容:
<activity android:name=".WelcomeScreen" android:noHistory="true" ... />
这会告诉设备不要将此Activity
保留在Activity
堆栈上。
答案 1 :(得分:2)
在Android决定删除之前,活动仍保留在内存中。别担心。当需要更多内存时,它会被破坏。在您的顶级活动使用它之前,它实际上是“未使用”的内存。
答案 2 :(得分:1)
我不确定你理解你的问题...... 你想开始一个新活动并销毁前一个活动吗? 如果这是您所需要的,您可以使用:
startActivity(new Intent(this, myActivity.class).setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
“CLEAR_TOP”标志告诉“嘿!我想开始这项活动并杀死所有其他人!”
答案 3 :(得分:0)
由于Android运行时环境使用垃圾收集(就像“传统的”Java),因此在大多数情况下,您无需担心手动销毁对象。如果系统需要额外的空间用于新对象,则未使用的Intent
对象占用的内存将被回收。