破坏意图?

时间:2012-05-14 16:32:35

标签: android

当我创建一个意图:

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将被破坏。

想要清理手机内存。

4 个答案:

答案 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对象占用的内存将被回收。