`

Android返回键处理(事件)

 
阅读更多
方式一:按返回键显示退出提示框( 自定义提示框架可以参考[ Android使用自定义AlertDialog(退出提示框) ] )
方式二:按返回键不退出应用,返回主页面(即与按Home键操作一样)
方式一:
public class WelcomeActivity extends Activity {
public boolean onKeyDown(int keyCode, KeyEvent event) {
// 如果是返回键,直接返回到桌面
if(keyCode == KeyEvent.KEYCODE_BACK || keyCode == KeyEvent.KEYCODE_HOME){
                   showExitGameAlert();
}

return super.onKeyDown(keyCode, event);
}

private void showExitGameAlert() {
final AlertDialog dlg = new AlertDialog.Builder(this).create();
dlg.show();
Window window = dlg.getWindow();
window.setContentView(R.layout.shrew_exit_dialog);
ImageButton ok = (ImageButton) window.findViewById(R.id.btn_ok);
ok.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
exitApp();
}
});

ImageButton cancel = (ImageButton) window.findViewById(R.id.btn_cancel);
cancel.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
dlg.cancel();
}
});
}
}
方式2

public class SenseSoccerScoreActivity extends Activity {
public boolean onKeyDown(int keyCode, KeyEvent event) {
// 如果是返回键,直接返回到桌面
                // 经过测试,如果是乐Phone返回桌面会报错
if(keyCode == KeyEvent.KEYCODE_BACK){
// 创建退出系统提示框
if(notSupportKeyCodeBack()){
                   new AlertDialog.Builder(this)
                    .setMessage(this.getText(R.string.sure_exit_app).toString())
                    .setPositiveButton(R.string.text_ok, new DialogInterface.OnClickListener() {
               public void onClick(DialogInterface dialog, int which) {
            exitApp(); // 退出应用处理
               }
            })
            .setNegativeButton(R.string.text_cancel, new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
            }
            }).create().show();
} else {
// 返回桌面,经测试,有一些手机不支持,查看 notSupportKeyCodeBack 方法
Intent i= new Intent(Intent.ACTION_MAIN);
i.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
i.addCategory(Intent.CATEGORY_HOME);
startActivity(i);
return false;
}
}
return super.onKeyDown(keyCode, event);
}
        // 经过测试,如果是乐Phone返回桌面会报错
private boolean notSupportKeyCodeBack(){
if("3GW100".equals(Build.MODEL) 
                         || "3GW101".equals(Build.MODEL)
                         || "3GC101".equals(Build.MODEL)) {
return true;
}
return false;
}
}
分享到:
评论

相关推荐

    Android返回键处理

    Android返回键处理

    android处理键盘事件之物理按键(屏蔽后退键)

    本例子讲述了,android开发中常用的键盘事件的处理示例。另外,加有文档的说明

    [Hasen图示系列]android中键盘消息处理机制

    Android 系统的键盘事件 是由InputManagerService 来监控的, 而InputManagerService 是由 SystemServer 来启动的 创建了一个类的对象 WindowInputEvent Receiver InputEventRe ceiver的构造 函数 ...

    qml stackview实现安卓back键返回 和正常状态下的双击退出(全局过滤)

    实现qml的全局过滤

    android TV端加载h5处理返回键的测试apk

    一个android TV端测试apk和h5示例demo,适用于开发h5放到android app里加载联调的开发人员使用,主要用来验证测试网页里按遥控器返回键时的流程

    Android Fragment监听返回键的一种合理方式

    说完小罗就准备着手处理,然后却发现信息编辑界面是一个Fragment,然而Fragment并没有提供返回键点击的直接处理;小罗虽菜,但是摸鱼也摸了些年头了,这问题难不倒小罗。 小罗心想,反正Activity提供了onBackPressed...

    Android 双击返回键退出程序的方法总结

    Android 双击返回键退出程序的方法总结 下面先说说LZ思路,具体如下: 1. 第一种就是根据用户点击俩次的时间间隔去判断是否退出程序; 2. 第二种就是使用Android中计时器(Timer),其实这俩种都差不多. 思路是有...

    Android开发实现长按返回键弹出关机框功能

    主要介绍了Android开发实现长按返回键弹出关机框功能,涉及Android针对长按事件的响应与处理相关操作技巧,需要的朋友可以参考下

    Android中让按钮拥有返回键功能的方法及重写返回键功能

    让按钮拥有返回键的功能很简单,在点击事件加上finish();就OK了。 如: 代码如下: public void onClick(View v){ finish(); } finish() 仅仅是把activity从当前的状态退出,但是资源并没有给清理。 其实android的...

    Android实现返回键功能

    * 返回键处理 */ @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode==KeyEvent.KEYCODE_BACK){ boolean result=MiddleManager.getInstance().goBack(); if(!result){ Toast.makeText...

    React Native中Android物理back键按两次返回键即退出应用

    本文主要给大家介绍了关于React Native中Android物理back键按两次返回键就会退出应用的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 话不多说,直接上图: 测试代码 第16~22行 设置...

    解决微信授权成功后点击按返回键出现空白页和报错的问题

    微信授权我是 在index.vue做的授权,是一个空白页,因为授权需要回调所以这个页面会刷新两次,当我们授权成功进入主页面后,点击返回键或者点击手机的物理返回键,因为浏览器history机制,按物理返回或者返回肯定是...

    Android代码-android-UCToast

    UC 浏览器复制,无需权限提示悬浮窗实现 ABOUT ME / 关注我: Github | twitter | 微博 更多的关于本项目,以及悬浮窗权限细节以及总结,请看: 廖祜秋liaohuqiu_秋百万 的 Android 悬浮窗的小结 ...处理返回键关

    Android开发案例驱动教程 配套代码

    4.3.3 匿名内部类事件处理模型 51 4.4 Activity中的常用事件 53 4.4.1 触摸事件 53 4.4.2 键盘事件 55 4.5 菜单 57 4.5.1 文本菜单 57 4.5.2 图片文本菜单 59 本章小结 60 第5章 UI基础控件 61 5.1 按钮 61...

    网站打包APP,android原生APP封装网页,app封装.zip

    老版本:将网站封装为安卓APP,修复新版本安卓只能使用https的情况,修复返回键退出APP情况,支持自定义错误页。 开发工具:android studio 注意:部分网站可能不兼容自行百度修改 当前版本:在原有基础上处理了...

    Android组件之Webview实例源码

    有时候,我们完全可以把UI甚至数据处理都交给WebView,配合PHP...程序功能介绍:打开网页同时显示一个ProgressDialog,网页载入完毕则隐藏,点击页面上链接时再次显示ProgressDialog,载入完隐藏,可用返回键返回上一页。

    详解Android中获取软键盘状态和软键盘高度

    当软键盘显示时,按下返回键应当是收起软键盘,而不是回退到上一个界面,但部分机型在返回键处理上有bug,按下返回键后,虽然软键盘会自动收起,但不会消费返回事件,导致Activity还会收到这次返回事件,执行回退...

    Android实现返回键操作思路

    * 返回键处理 */ @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode==KeyEvent.KEYCODE_BACK){ boolean result=MiddleManager.getInstance().goBack(); if(!res

    android开发中WebView的使用

    android开发中WebView的使用 ...有时候,我们完全可以把UI甚至...程序功能介绍:打开网页同时显示一个ProgressDialog,网页载入完毕则隐藏,点击页面上链接时再次显示ProgressDialog,载入完隐藏,可用返回键返回上一页。

    新版Android开发教程.rar

    ----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 2 开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance ...

Global site tag (gtag.js) - Google Analytics