2012-05-14 89 views
1

当我创建一个意图:摧毁一个意图?

Intent in = new Intent(this, myclass.class); 
this.startActivity(in); 

我创建了一个新的意图,但最后的目的是不破坏
它仍然在内存
我怎么能杀了这最后的毁灭?

所以我想在两个不同的类创建两个意图: 第一类我写这篇文章:

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

只是做基本n2 = null; – Akram

回答

6

您可以通过重写这样的返回键功能,防止去到以前Activity用户:

public void onBackPressed() { 
     //doing nothing on pressing Back key 
     return; 
    } 

虽然这种做法是不encouraged.And大家都知道,在Activity将自动杀死当某些方面出现像内存要求时。你不能按照你的意愿摧毁一个Activity

虽然具体的情况下,像一个欢迎屏幕也许,你可以做以下两两件事之一:

1)拨打您当前Activityfinish()方法,你移动到 新Activity(通常在完成时使用Thread)。

2)请使用您manifest如下:

<activity android:name=".WelcomeScreen" android:noHistory="true" ... /> 

这将告诉设备无法保持这种ActivityActivity堆栈。

+0

yeaaaah谢谢你的男人:D nohistory =“true”在xml文件中,并且新的意图在我的class:D so cool again再次 – shelltrayWnd

+0

如果有帮助的话,请立即注册。:-) –

1

我不确定要了解您的问题... 您想开始一项新活动并销毁上一个活动吗? 如果这是你需要什么,你可以使用:“嘿!我要开始这项活动,杀死所有的其他的”

startActivity(new Intent(this, myActivity.class).setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)); 

的“CLEAR_TOP”标志告诉

+0

是的,我想破坏以前的意图,所以我通过你的代码,但是当我点击模拟器的后退按钮(KeyEvent。KEYCODE_BACK)...我没有消息错误和以前的信息仍然在意图:( 我可以清理布局吗?或销毁意图 – shelltrayWnd

2

在Android决定将其删除之前,活动仍保留在内存中。不要担心。当需要更多内存时它会被破坏。这是有效的“未使用”的内存,直到您的顶级活动使用它。

+0

是的,但是当我点击后面的模拟器boutton我得到最后的信息我不想这样:/ – shelltrayWnd

+0

听起来好像你从上次使用过程中传入了同一个intent对象,如果你退出一个Activity然后用一个新的intent重新启动它,它应该作为一个新的Activity。用新的意图调用startActivity(),它应该像重新启动一样。 – DeeV

0

由于Android运行时环境使用垃圾回收(就像“传统”Java一样),因此在大多数情况下,您无需担心手动销毁对象。如果系统需要额外的空间用于新对象,未使用的对象占用的内存将被回收。