2011-06-15 75 views
1

我使用finish()进行活动和使用back按钮的键盘很困惑。我已经创建了许多活动,所以从一个活动移动到另一个我完成了最后的活动。并且我还在我的活动中使用了后退按钮,因此我可以通过按下返回按钮返回(从我来的地方) ,但是当我使用键盘的后退按钮时出现问题我转到任何其他活动。我希望它应该作为我的活动返回键。问题在活动完成()和在按下back按钮在android

我认为这可以通过使用onKeyListener和chekcing键盘的后退按钮来完成,并且在那里我开始与我的活动后退按钮相同的活动。 我想知道这样做是对的还是有比这更好的方法?

请帮助

回答

4

有一个更好的办法:

从一个活动到另一个时,你应该不叫finish()。如果需要内存,操作系统会为您清除它,当您按回时它将根据需要运行。只要确保你的生命周期函数是正确的(当你松散焦点等时你清理了大量内存占用的东西),你将会是一个更快乐的编码器。

2

您可以覆盖活动的onBackPressed方法以覆盖默认行为(即为您的活动调用finish())。

但是,您应该在常规基础上质疑您的总体设计。请查看Tasks and Back Stack的文档,了解其他控制Android activity lifecycle效果更好的用户体验的方法。

1

尽量不要使用完成(),iF你想要免费的内存然后不要担心os会做的情况下内存需要和后退按钮将工作。

我希望你知道活动的生命周期。每当你按下后退按钮,其他活动停止

+3

你的CapsLock似乎被打破...... – Nanne 2011-06-15 08:56:18

+0

你是绝对正确的。 Shift键卡住了..现在它好:) – Stuti 2011-06-15 10:50:36

1

如果你想呼叫finish(),并希望您的设备后退按钮作为活动后退按钮,然后覆盖onBackPressed()方法。

假设你在活动2,然后,想在活动1这是你的第一个actvity然后里面Activity2.java下面写代码来支持....

public void onBackPressed() 
    { 
     Intent setIntent = new Intent(this,Activity1.class); 
     startActivity(setIntent); 
     return; 
    } 
相关问题