询问用户的哪个好地方,当他点击后退按钮时是否要退出应用程序?我考虑了onPause
和onStop
,但只要应用程序落后于其他应用程序,这些方法就会触发。
更新: 应用程序还应询问用户是否尝试从按钮(在应用程序本身)中退出应用程序,而不是后退硬键。
答案 0 :(得分:18)
要求用户允许关闭 应用强>
您可以通过以下方式完成此操作;
/**
* 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();
}
询问用户的好地方, 是否要退出应用程序 何时(s)他点击了后退按钮?
因为,你想要提示用户按照其他人的建议点击后面的硬按钮,你可以覆盖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);
}
该应用还应询问用户是否 试图从按钮退出应用程序 (在app中),而不是Back hard 键。强>
为此,请从按钮上点击doExit()
onClick;
Button exitButton = (Button)findViewById(R.id.exitButton);
exitButton.setOnClickListener(new android.view.View.OnClickListener() {
@Override
public void onClick(View v) {
doExit();
}
});
相关信息:
答案 1 :(得分:6)
答案 2 :(得分:2)
最好的地方是onBackPressed
。你要记住的唯一一件事是应用程序表现“正常” - 即用户按下它们时应该转到上一个屏幕 - 如果他们按回主屏幕,那么问他们是否意味着什么是好的退出应用程序。
答案 3 :(得分:2)
如果仅在用户按下时(不在家或等等),请使用onBackPressed。
医生说:
在活动检测到时调用 用户按下后退键。该 默认实现只是完成 当前的活动,但你可以 覆盖它以做任何你想做的事。
因此,如果您抓住背压并且不做任何事情,则活动不会退出。
如果您想退出,请使用finish()
答案 4 :(得分:0)
这是一个相当老的问题,但是在Google上排名很高,因此我认为它可能需要更新:
@Override
public void onBackPressed() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Do you want to exit the app?");
// if user presses "Exit", then he is allowed to exit from application
builder.setPositiveButton("Exit", (dialog, which) -> finish());
// if user selects "Stay", just cancel this dialog and continue with app
builder.setNegativeButton("Stay", (dialog, which) -> dialog.cancel());
builder.create().show();
}