我正试图通过单击后退按钮关闭我的应用程序。从主屏幕,后退按钮将带您进入学分屏幕。从那个学分屏幕,我想用后退按钮关闭应用程序。不幸的是,我正在调用的onBackPressed()方法似乎根本没有被执行。我不知道该怎么办。
package app.jonward.boss;
import android.app.Activity;
public class Credits extends Activity{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.credits);
//Doing stuff
}
@Override
public void onBackPressed() {
finish();
return;
}
}
答案 0 :(得分:3)
我不明白。 <{1}} 调用onBackPressed()
的内容。 finish()
是finish()
方法,没有办法“退出”您的应用,可以这么说。也许您真正想要的是在启动Activity
活动的活动上调用finish()
。在其他活动中:
Credits
答案 1 :(得分:1)
尝试以下解决方案?
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
finish();
return true;
}
return super.onKeyDown(keyCode, event);
}
答案 2 :(得分:1)
就在最近,我遇到了这个问题,我可以通过删除build
目录中的所有文件夹来解决它。
我不知道怎么样但是Android Studio
似乎在生成构建时出错并导致了这个问题。因此,在删除build
目录后,我的onBackpressed()
方法被调用。
答案 3 :(得分:0)
对不起,我还没有评论(我希望这是对Muffinbubble答案的评论)..
尝试将onKeyDown放入主类中,并验证即使您处于第二个Activity中,也会调用此方法。 然后,您可以通过主类检查您的位置,并在需要时退出应用程序,否则返回super.onKeyDown(..)。
答案 4 :(得分:0)
我不知道你是否找到了答案,但是你是否已经从最重要的方法中尝试了super.onBackPressed?
如果我是你,我会尝试:
@Override
public void onBackPressed() {
super.onBackPressed();
finish();
}