Android 如何监听返回键,弹出一个退出对话框
android 如何监听返回键点击事件,并创建一个退出对话框,
防止自己写的应用程序不小心点击退出键而直接退出。自己记录下这个简单的demo,备用。
public class BackKeyTest extends Activity
{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main); } @Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if (keyCode == KeyEvent.KEYCODE_BACK )
{
// 创建退出对话框
AlertDialog isExit = new AlertDialog.Builder(this).create();
// 设置对话框标题
isExit.setTitle("系统提示");
// 设置对话框消息
isExit.setMessage("确定要退出吗");
// 添加选择按钮并注册监听
isExit.setButton("确定", listener);
isExit.setButton2("取消", listener);
// 显示对话框
isExit.show(); } return false; }
/**监听对话框里面的button点击事件*/
DialogInterface.OnClickListener listener = new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int which)
{
switch (which)
{
case AlertDialog.BUTTON_POSITIVE:// "确认"按钮退出程序
finish();
break;
case AlertDialog.BUTTON_NEGATIVE:// "取消"第二个按钮取消对话框
break;
default:
break;
}
}
};
}
把这个功能放到MAIN ACTIVITY里。
Android手机常用的三个键,home键,back键及menu键。
在应用程序里我们经常会对它们经常进行一定的处理,方便用户使用。
首先我们要明确点击三个键时系统干了什么事,如果没有进行监听处理,点击home键时,系统默认只执行应用程序的当前显示的Activity的onStop()方法后跳出界面。
而点击back键时,系统默认执行的是应用程序当前Activity的finish()方法后跳出界面。而点击menu键时,系统默认不进行任何处理。
这里只是一个简单的应用demo,我们可以根据自己的需要设计一个更完美的退出程序对话框。
也可以在监听到返回事件后进行其他处理,等等。
代码里面没有写IMPORT需要的类空间,在ECLIPSE下按CTRL+T就可以看到需要的类的完整的NAMESPACE是什么,再手动IMPORT需要的类路径就可以了。
这样在需要退出的环节要进行某些逻辑功能时就很方便, 比如在我的APP退出时,就关闭掉APP启动时自动打开的WLAN热点功能。
提示实际运行效果如图

点取消息 或确定 都可以监听到事件。
Android 如何监听返回键,弹出一个退出对话框的更多相关文章
- [转]Android 如何监听返回键,弹出一个退出对话框
本文转自:http://blog.csdn.net/sunnyfans/article/details/8094349 Android 如何监听返回键点击事件,并创建一个退出对话框, 防止自己写的应用 ...
- 【Android】Android实现监听返回键,主键(HOME),菜单键
目录结构: contents structure [+] 简介 监听 返回键 监听 主键(Home键) 监听 菜单键 一.简介 本篇文章介绍如何在Android中实现监听返回键,主键,菜单键.一般情况 ...
- Android WindowManager 监听返回键及home键
一.监听home键盘,Android Home键系统负责监听,捕获后系统自动处理.有时候,我们需要监听home键处理自己的逻辑,监听方法如下: /** * 监听home键广播 */ private f ...
- Android onKeyDown监听返回键无效
当我们的Activity继承了TabActivity,在该类中重写onKeyDown是监听不到返回键的, 具体解决方法如下: 重写dispatchKeyEvent /** * 退出 */ @Overr ...
- 大叔也说Xamarin~Android篇~监听返回键,单击返回某个webView,双击退出
回到目录 这个操作在原生android里是很容易实现的,在xamarin里也不难,在activity里有方法OnKeyDown,我们只需要重写一下就可以了,然后通过webView重新加载到要返回的页面 ...
- Xamarin~Android篇~监听返回键,单击返回某个webView,双击退出
https://www.cnblogs.com/lori/p/5088627.html DateTime? lastBackKeyDownTime; public override bool OnKe ...
- Android 监听返回键退出程序的两种实现
1.Android 双击返回键退出程序 思路:用户按下返回键时设定一个定时器来监控是否2秒内实现了退出,如果用户没有接着按返回键,则清除第一次按返回键的效果,使程序还原到第一次按下返回键之前的状态.定 ...
- Android监听返回键、Home键+再按一次返回键退出应用
Android监听返回键需重写onKeyDown()方法 Home键keyCode==KeyEvent.KEYCODE_HOME @Override public boolean onKeyDown( ...
- android 监听返回键
android监听返回键 public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE ...
随机推荐
- static关键字修饰类
今天继续研究公司的新项目,据说是京东的架构,研究看了一番,果然很牛逼,大致是Maven+spingmvc+spring+mybatis+ehcache+velocity来搭建的,数据库用的是mysql ...
- 一次线上OOM故障排查经过
转贴:http://my.oschina.net/flashsword/blog/205266 本文是一次线上OOM故障排查的经过,内容比较基础但是真实,主要是记录一下,没有OOM排查经验的同学也可以 ...
- 搜狐cache文件夹设置
比如说本来sohucache放在E盘,你想改到D盘.第一步:在运行中打开regedit,在弹出的HKEY_CURRENT_USER选中Software第二步:再选中SOHU再选中SoHuVA再选中Ca ...
- JSON API in Javascript
1. Serialize JavaScript object to JSON var messageObject = { title: 'Hello World!', body: 'It\'s gr ...
- C++ ADO 数据查询
ADO 数据查询 关键点 上1条 下1条 第1条 最后1条 实现过程 // stdafx.h : include file for standard system include files, #im ...
- [原]生产环境下的nginx.conf配置文件(多虚拟主机)
[原]生产环境下的nginx.conf配置文件(多虚拟主机) 2013-12-27阅读110 评论0 我的生产环境下的nginx.conf配置文件,做了虚拟主机设置的,大家可以根据需求更改,下载即可在 ...
- [MEAN Stack] First API -- 5. Using $resource to setup REST app
Front-end changes: app.js: Uinsg $resource /** * Created by Answer1215 on 12/9/2014. */ 'use strict' ...
- IOS学习之IOS沙盒(sandbox)机制和文件操作
IOS学习之IOS沙盒(sandbox)机制和文件操作(一) 1.IOS沙盒机制 IOS应用程序只能在为该改程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被成为沙盒,所以所有的非代码文件都 ...
- MySQL Troubleshoting:Waiting on query cache mutex 腾讯数据库工程师:幕南风
http://blog.itpub.net/26515977/viewspace-1208188/ 今天被MySQL Query Cache 炕了.线上大量 Waiting on ...
- oracle_partition sample_simple
一:范围分区 就是根据数据库表中某一字段的值的范围来划分分区,例如: create table graderecord ( sno varchar2(10), sname varchar2(20), ...