帖子已被编辑Android应用程序没有正常关闭时,点击返回
我编程的Android应用程序作为一个实践项目学习的目的。我遇到一个问题,当我在访问设置活动并在其中进行更改(复选框选项)后按主活动上的后退按钮时,它会返回设置活动。如果在设置活动中没有进行任何更改,并且我回到主要活动并再次按下,则退出正常。如果我访问任何其他活动,然后返回主页,请再次按下,一键点击即可关闭。
下面您会看到设置活动和主要活动的后退按钮代码。
user_settings_activity.java(设置活动):
// When the back button is pressed, it goes back to the previous screen.
@Override
public void onBackPressed() {
super.onBackPressed();
finish();
}
User_Options.java(主要活动):
// When the back button is clicked, the user is asked if they want to close the app window or not.
@Override
public void onBackPressed() {
super.onBackPressed();
finish();
}
请告诉我,以所需的任何其他代码。
任何帮助解决方案,将不胜感激。
谢谢。
SOLUTION
首先,谢谢大家谁坚持这一问题提供答复和意见。我感谢大家的帮助。现在经过一番修改之后,我终于设法解决了这个问题。代码如下。
设置的活动:
// For the go back button.
public void go_back_butt(View v){
// Goes to main activity.
Intent main_activity = new Intent(getApplicationContext(), User_Options.class);
main_activity.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
main_activity.putExtra("EXIT", true);
startActivity(main_activity);
finish();
}
而且
// When the back button is pressed, it goes back to the previous screen.
@Override
public void onBackPressed() {
super.onBackPressed();
finish();
}
主要活动:
// When the back button is clicked, the user is asked if they want to close the app window or not.
@Override
public void onBackPressed() {
super.onBackPressed();
if (getIntent().getBooleanExtra("EXIT", false)) {
finish();
}
android.os.Process.killProcess(android.os.Process.myPid());
}
说明:
如前所述@chichiangho,我需要采取IN-深入了解在栈上。由于我在这方面的知识有限,所以我设法弄清楚,由于某种原因,设置活动并没有像我最初的理论那样正确关闭。所以这让我想知道如何在保留我保存的设置的同时正确处理这个问题。
感谢@kevz和@MFP响应,我能够创建一个解决方案。我实现了一个“返回”按钮(参见代码),并在主要活动上使用了kill过程来确保应用程序“正常退出”。我还将设置活动的意图传递给主要活动以确保完成()过程发生。
谢谢大家谁参与了,并花时间发布你的有用答案,让我在箱子外思考更多,同时学习有关android应用开发的新东西=)。
我读了你的简短版本,我猜你在传递到第二个活动时不会打电话完成 –
@Mohit G:r在BackPress的SettingActivity中启动MainActivity? – kevz
我认为这是我在手机中发现的问题,仅在调试我的应用程序时启动两次 – Androider