当按下“后退”按钮时提示用户
这是询问用户的好地方,当他(s)他点击后退按钮时他是否想要退出应用程序?我考虑过和onStop
,但是这些方法在应用程序退出其他应用程序后触发。当按下“后退”按钮时提示用户
更新: 应用程序还应该询问用户是否试图从按钮(在应用程序本身)退出应用程序,而不是后退硬键。
询问用户的权限,关闭 应用。
您可以通过以下方式进行操作;
/**
* Exit the app if user select yes.
*/
private void doExit() {
AlertDialog.Builder alertDialog = new AlertDialog.Builder(
AppDemoActivity.this);
alertDialog.setPositiveButton("Yes", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
});
alertDialog.setNegativeButton("No", null);
alertDialog.setMessage("Do you want to exit?");
alertDialog.setTitle("AppTitle");
alertDialog.show();
}
哪一个是好地方,询问用户,是否 他(她)想要的时候他(她)点击后退按钮退出应用程序 ?
因为,要提示用户,当他(她)点击后退硬键,通过别人的建议,你可以重写onBackPressed()
方法,并从那里调用上面的方法;
@Override
public void onBackPressed() {
doExit();
}
正如@Martyn建议,您可以使用onKeyDown
达到相同的;
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK) {
doExit();
}
return super.onKeyDown(keyCode, event);
}
该应用程序还应该询问用户是否是 试图从一个按钮 (在应用程序本身),而不是返回硬 键退出程序。
为此,请从您的按钮的onClick调用doExit()
;
Button exitButton = (Button)findViewById(R.id.exitButton);
exitButton.setOnClickListener(new android.view.View.OnClickListener() {
@Override
public void onClick(View v) {
doExit();
}
});
也许不是'finish()',而是可以调用'AppDemoActivity.super.onBackPressed()' – lopek 2013-05-07 13:04:04
最好的地方是在onBackPressed
。唯一需要记住的是应用程序的行为“正常” - 即当用户按下时应该返回到前一个屏幕 - 如果他们按下主屏幕,那么很好问他们是否意味着退出应用程序。
如果只有当用户按压背部(不在家或其他),使用onBackPressed。
的医生说:当活动检测 用户的返回键的按下
调用。 默认实现只需完成 当前活动,但您可以通过 覆盖此操作来执行任何您想要的操作。
所以,如果你赶上后压,不要做任何事情,活动不会退出。 如果你想退出,使用finish()
你的下一个问题将是如何完全退出应用程序 – ingsaurabh 2011-06-09 09:25:13
@Saurabh Agnihotri:没有好友。我已经知道了。而且我也知道退出应用并不是一个好主意。我想要做的是提示用户,而不是自己退出应用程序。 – Chromium 2011-06-09 10:02:05
这将是伟大的+1,我不知道为什么大多数用户想关闭? – ingsaurabh 2011-06-09 10:04:04