Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android中的activity finish()和按下后退按钮时出现问题_Android_Android Activity_Back - Fatal编程技术网

android中的activity finish()和按下后退按钮时出现问题

android中的activity finish()和按下后退按钮时出现问题,android,android-activity,back,Android,Android Activity,Back,在使用finish()进行活动和使用键盘上的后退按钮时,我非常困惑。我创建了许多活动,所以在从一个活动移动到另一个活动时,我完成了最后一个活动。而且我在活动中也使用了后退按钮,这样我就可以返回(从我来的地方) 通过按下后退按钮,但当我使用键盘的后退按钮时,问题出现了,我转到任何其他活动。我希望它应该作为我的活动的后退按钮工作 我认为这可以通过使用onKeyListener和chekcing键盘的后退按钮来实现,在那里我开始活动的方式和我的活动的后退按钮相同。 我想知道这样做是对的还是有比这更好的

在使用finish()进行活动和使用键盘上的后退按钮时,我非常困惑。我创建了许多活动,所以在从一个活动移动到另一个活动时,我完成了最后一个活动。而且我在活动中也使用了后退按钮,这样我就可以返回(从我来的地方) 通过按下后退按钮,但当我使用键盘的后退按钮时,问题出现了,我转到任何其他活动。我希望它应该作为我的活动的后退按钮工作

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

请帮助

有更好的方法:

从一个活动转到另一个活动时,不应调用
finish()
。如果需要内存,操作系统将为您清除内存,当您按下back键时,它将根据需要工作。只要确保你的生命周期功能是正确的(当你失去焦点时,你会清理大量占用内存的东西等),你就会成为一个更快乐的程序员。

有一个更好的方法:


从一个活动转到另一个活动时,不应调用
finish()
。如果需要内存,操作系统将为您清除内存,当您按下back键时,它将根据需要工作。只要确保你的生命周期功能是正确的(当你失去焦点时,你会清理大量占用内存的东西等),你就会成为一个更快乐的编码者。

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


然而,当你在常规的基础上这样做时,你应该质疑你的整体设计。请查看上的文档,以了解其他更适合Android的控制用户体验的方法。

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


然而,当你在常规的基础上这样做时,你应该质疑你的整体设计。请查看上的文档,以了解其他更适合Android的控制用户体验的方法。

尽量不要使用finish(),如果您想释放内存,那么不要担心操作系统会在需要内存的情况下这样做,后退按钮会起作用


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

请尝试不要使用finish(),如果您想释放内存,则不要担心操作系统会这样做,以防需要内存,后退按钮将起作用


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

如果您想调用
finish()
并希望您的设备后退按钮作为活动后退按钮工作,则覆盖
onBackPressed()
方法

假设您在活动2中,并且想要回到活动1中,这是您的第一个活动,然后在Activity2.java中编写以下代码

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

如果您希望调用
finish()
,同时希望设备后退按钮作为“活动后退”按钮工作,请重写
onBackPressed()
方法

假设您在活动2中,并且想要回到活动1中,这是您的第一个活动,然后在Activity2.java中编写以下代码

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

你完全正确。换档钥匙卡住了。。现在好了:)你完全正确。换档钥匙卡住了。。现在好了:)