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();
/*// 做其他处理或者跳转if(keyCode == KeyEvent.KEYCODE_BACK || keyCode == KeyEvent.KEYCODE_HOME){
Intent intent = new Intent(MeimeiImageActivity.this,MeimeiImageActivity.class);
startActivity(intent);
return true;
}else {
return super.onKeyDown(keyCode, event);
}*/
}
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();
}
});
}
}
方式二:
-
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 onKeyDown监听返回键无效的解决办法的相关资料,需要的朋友可以参考下
android 后台监听按键事件方法及demoandroid 后台监听按键事件方法及demo
Android 屏蔽home,菜单,返回键 解锁,加锁
主要介绍了android监听返回按钮事件的方法,涉及Android事件监听的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
Android 点击两次返回键退出程序
本例子讲述了,android开发中常用的键盘事件的处理示例。另外,加有文档的说明
本文实例讲述了Android开发实现Fragment监听返回键事件功能的方法。分享给大家供大家参考,具体如下: 前面的文章Android开发教程之Fragment定义、创建与使用方法详细讲述了Fragment的基本概念与用法。这里再来分析...
Android 拦截返回键事件的实例详解 KeyEvent类 Android.View.KeyEvent类中定义了一系列的常量和方法,用来描述Android中的 按键事件和返回键有关的常量和方法有。 KeyEvent.KEYCODE_BACK: 表示key类型为返回键 ...
安卓Android源码——返回键退出程序的两种方式.zip
Cocos2d-js中实现Android返回键,自行拷贝frameworks文件。 Cocos2d-x-3.10
Android应用源码之返回键退出程序的两种方式.zip
Android中对手机的返回键,Home键以及多功能切换键的监听,详细了解请移步:http://blog.csdn.net/zxc514257857/article/details/77045754
1、仿微信客户端UI 2、监听fragment返回键 3、双击退出
Android实现点击两次返回键退出 带注释
支持包括谷歌系列手机(nexus,pix。。。 )软键盘返回键的监听,博客:https://blog.csdn.net/Crystal_xing/article/details/102680648
安卓Android源码——返回键退出程序的两种方式.rar
一般的游戏或者软件,都会在android版本上做退出程序的功能,一般的实现方式有两种: 1.点击返回按键,弹出确认是否退出; 2.点击返回,toast提示再次点击退出程序。
监听,屏蔽,重写多任务键,点击多任务键打开自定义menu,点击menu子选项打开新的页面,返回键实现再按一次退出功能