【发布时间】:2012-07-03 17:43:49
【问题描述】:
我怎样才能使按下后退按钮不会关闭我的应用程序?我想显示一条确认消息。
谢谢。
【问题讨论】:
-
您是说要显示确认消息,例如“再次按下以退出”之类的内容吗?你想让第二次按下后退按钮做点什么吗?
我怎样才能使按下后退按钮不会关闭我的应用程序?我想显示一条确认消息。
谢谢。
【问题讨论】:
来源:Override back button to act like home button
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
//Display confirmation here, finish() activity.
return true;
}
return super.onKeyDown(keyCode, event);
}
这是一个非常快速的搜索,下次尝试看一下。
【讨论】:
应用关闭确认在这里
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Do you want to close?")
.setCancelable(false)
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
//do finish
ImageViewActivity.this.finish();
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
//do nothing
return;
}
});
AlertDialog alert = builder.create();
alert.show();
}
return super.onKeyDown(keyCode, event);
}
【讨论】:
按下后退按钮试试这个,它会显示确认消息
@Override
public void onBackPressed() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Thank You!!!!!")
.setCancelable(false)
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
//do things
}
});
AlertDialog alert = builder.create();
alert.show();
}
【讨论】:
不建议退出您的 Android 应用程序。Android 的设计不支持选择退出应用程序,而是由操作系统管理它。你可以通过对应的 Intent 调出 Home 应用:
您可以在 Android 1.x 及更高版本的 onKeyDown() 或 Android 2.x 及更高版本的 onBackPressed() 上触发此 Intent
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
一个更简单的方法是捕获后退按钮按下并调用 moveTaskToBack(true),如下所示:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
moveTaskToBack(true);
return true;
}
return super.onKeyDown(keyCode, event);
}
【讨论】: