点击手机物理键返回

android开发中双击手机物理键“back”,退出应用的方法有两种:

一,重写Activity中的方法:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event){
    if(keyCode==KeyEvent.KEYCODE_BACK){
        //弹出确定退出对话框
        new AlertDialog.Builder(this) //这里可以设置Dialog背景
        .setTitle("退出")
        .setMessage("确定退出吗?")
        .setPositiveButton("确定", new DialogInterface.OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int which) {
                // TODO Auto-generated method stub
                Intent exit = new Intent(Intent.ACTION_MAIN);
                exit.addCategory(Intent.CATEGORY_HOME);
                exit.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                startActivity(exit);
                System.exit(0);
            }
        })
        .setNegativeButton("取消", new DialogInterface.OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int which) {

                dialog.cancel();
            }
        })
        .show();
        //这里不需要执行父类的点击事件,所以直接return
        return true;
    }
    //继续执行父类的其他点击事件
    return super.onKeyDown(keyCode, event);
}

二, 计算两次点击的时间差,判断时间差来退出应用。

@Override
public boolean onKeyDown(int keyCode, KeyEvent event){
    if(keyCode == KeyEvent.KEYCODE_BACK){
        exitBy2Click();
        return false;
    }
}

private void exitBy2Click() {
    if ((System.currentTimeMillis() - exitTime) > mExitTime) {
        Toast.makeText(mContext, "再按一次退出程序", Toast.LENGTH_SHORT).show();
        exitTime = System.currentTimeMillis();
    } else {
        finish();
    }
}
发布了31 篇原创文章 · 获赞 1 · 访问量 5万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章