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

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


然后回车自动生成重写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();    }

功能实现图:



更多相关文章

  1. C语言函数的递归(上)
  2. 探究 Android(安卓)View 绘制流程,Activity 的 View 如何展示到屏
  3. 【Android】 NDK开发基础
  4. [转]Android(安卓)3D 编程:HelloArrow(用 OpenGL ES 2.0 实现)
  5. android 图形系统加速学习系列 (一)
  6. Android(安卓)Lua 相互调用
  7. android ApiDemos里的Transition3d翻转修复完善
  8. Android使用代码进行界面布局和改变图标、标题、名称、主界面
  9. Android(安卓)在一个程序中启动另一个程序(包名,或者类名)

随机推荐

  1. Android 实现apk文件下载并自动安装
  2. android使用Dialog跳转到Activity
  3. android下无预览摄像
  4. Android 端如何添加自定义表情
  5. Android 自定义相机
  6. android自动更新软件版本
  7. Gradle in Android Studio (3) - 项目中
  8. Android仿微信朋友圈发图片和文字
  9. Android获取状态栏和标题栏的高度
  10. 自己写的一个在线汇率转换工具-MoneyDroi