我想在用户按Home时在我的应用中显示AlertDialog(无论是否退出应用)。我读到Home不能被覆盖。所以,我试图覆盖onPause方法。按下后退按钮时,它工作正常。但是,问题在于Home Button。当我按下Home按钮时它会显示对话框,但是在我对对话框执行任何操作之前它会将应用程序发送到后台。有没有办法在将应用程序发送到后台之前做一些工作?
我的工作:
@Override
protected void onPause() {
super.onPause();
if (clr.equals("red")) {
AlertDialog.Builder alertD = new AlertDialog.Builder(this);
alertD.setMessage("Do you want to cancel your schedule?")
.setCancelable(false)
.setPositiveButton("Yes",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int id) {
finish();
}
});
alertD.setNegativeButton("No",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
moveTaskToBack(true);
}
});
AlertDialog alertDD = alertD.create();
alertDD.show();
}
}
答案 0 :(得分:0)
对于您的应用程序的usasbiliy来说,这是非常糟糕的做法。长按主页按钮会有什么样的行为?用户知道主页按钮是主页按钮。如果您不想让用户失望,请不要这样做。
答案 1 :(得分:0)
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
Log.v(LOG_TAG, "onKeyDown: " + event.getKeyCode());
if (keyCode == KeyEvent.KEYCODE_BACK){
// Do your work
return true;
}
return super.onKeyDown(keyCode, event);
}
你可以使用上面的方法来防止后退键。
你看到任何APP可以阻止主页键吗?无
您只能通过接收ACTION_CLOSE_SYSTEM_DIALOGS
来通知主键被点击