android重写finish实现是否退出提示功能

众所周知用户按back键退出程序的时候是调用finish()来销毁活动的,那么我们是否可以重写finish()这个函数来过滤finish()的调用

首先,新建一个android工程,然后ctrl+o(android studio)搜索finish()

android重写finish实现是否退出提示功能_第1张图片

然后回车自动生成重写finish()函数代码

这里我们要用到AlertDialog对话框,首先我们在我们要重写的函数体里面new 一个AlertDialog

 AlertDialog.Builder dialog=new AlertDialog.Builder(MainActivity.this);//new AlertDialog对象
然后我们设置对话框标题,内容,是否back键销毁对话框

  dialog.setTitle("温馨提示");//对话框标题
  dialog.setMessage("是否退出本程序?");//对话框内容
  dialog.setCancelable(false);//是否back键销毁
接下来我们来创建AlertDialog的PositiveButton和NegativeButton的按钮Text和Event
 dialog.setPositiveButton("确定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
            
            }
        });
        dialog.setNegativeButton("取消", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
               
            }
到这里我们就把整个AlertDialog给完成了,接下来我们应该做的就是给按钮事件添加我们的代码

如果用户点了“确定”那么我们就应该写退出代码这里我们用java自带的,当然也可以可以写安卓的

第一种Java自带

System.exit(0);

第二种安卓的killProcess

android.os.Process.killProcess(android.os.Process.myPid());
完后了“确定”然后取消的话我们不用添加任何事件代码即可

接下来就是调用AlertDialog的show()函数

 
  
 dialog.show();
好,整个功能算是完成

实现代码:

 @Override
    public void finish() {
        AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this);
        dialog.setTitle("温馨提示");
        dialog.setMessage("是否退出本程序?");
        dialog.setCancelable(false);
        dialog.setPositiveButton("确定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                System.exit(0);
            }
        });
        dialog.setNegativeButton("取消", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                Toast.makeText(MainActivity.this, "谢谢支持", Toast.LENGTH_LONG).show();
            }
        });
        dialog.show();
    }

功能实现图:

android重写finish实现是否退出提示功能_第2张图片


你可能感兴趣的:(android)