按主页按钮android时显示对话框

时间:2013-12-06 06:03:07

标签: android

我想在用户按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();
    }
}

2 个答案:

答案 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

来通知主键被点击