`

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中,我们可以通过重写`onKeyDown()`方法来监听硬件返回键的按下事件。 以下是一个简单的示例,展示了如何监听返回按钮并弹出一个确认退出的对话框: ```java @Override protected void onCreate(Bundle ...

    Android onKeyDown监听返回键无效的解决办法

    需要注意的是,onBackPressed()方法不适用于TabActivity,因为TabActivity可能有自己的返回键处理逻辑。在处理TabActivity时,应该采用更通用的方法,比如重写dispatchKeyEvent()。 在一些复杂的应用中,比如使用...

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

    Android设备通常配备多个物理按键,包括返回键,这对于应用的导航至关重要。然而,在某些场景下,开发者可能希望禁用或自定义这些行为,例如在游戏或全屏模式下。 首先,让我们理解Android系统如何处理物理按键事件...

    Cocos2d-js实现Android的返回键

    总的来说,Cocos2d-js为开发者提供了丰富的API来处理Android返回键事件,通过事件监听机制,我们可以轻松地定制返回键的行为,满足各种应用场景的需求。在实际开发中,结合对Cocos2d-js框架的深入理解和项目需求,...

    Android 屏蔽home,菜单,返回键 解锁,加锁

    在Android系统中,Home键、菜单键(在某些设备上是多任务键)和返回键是用户界面的重要组成部分,它们提供了导航和操作的基本方式。然而,在特定的应用场景下,如开发特殊应用或游戏时,开发者可能需要屏蔽这些系统...

    Android 点击两次返回键退出程序

    在Android系统中,点击两次返回键退出程序是一种常见的应用安全机制,目的是防止用户意外地退出正在使用的应用。这种设计能够确保用户在误触返回键时,不会立即退出应用,而是需要再次确认。以下是对这个主题的详细...

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

    总之,这个测试apk为Android TV上的H5应用开发提供了一次实践机会,让开发者能够理解并解决在大屏幕上集成H5页面时返回键处理的挑战。通过学习和利用这个示例,开发者可以提升自己的TV应用开发能力,为用户提供更...

    cocos2dx android 监听返回键

    这是因为返回键事件已经被其他的 onKeyDown 方法处理掉了。具体来说,这个事件是被 Cocos2dxGLSurfaceView 的 onKeyDown 方法处理的。在这个方法中,按键 KeyEvent.KEYCODE_BACK 被监听了,只要在这里不作处理即可...

    Android开发实现Fragment监听返回键事件功能的方法

    "Android开发实现Fragment监听返回键事件功能的方法" Android开发实现Fragment监听返回键事件功能的方法是Android应用程序开发中非常重要的一种技术。该方法主要用于监听Fragment中的返回键事件,以便在 Fragment ...

    安卓Android源码——返回键退出程序的两种方式.zip

    在安卓(Android)系统中,开发应用程序时,处理返回键以退出程序是常见的需求。本文将深入探讨两种主要的方法,帮助开发者理解并实现这一功能。 首先,我们要知道,Android应用程序通常由多个活动(Activity)组成...

    Android仿微信客户端+监听fragment返回键

    为了监听返回键,我们可以在每个Fragment中重写`onBackPressed()`方法,或者使用`onOptionsItemSelected()`来处理ActionBar或系统工具栏上的返回按钮点击事件。同时,如果Fragment嵌套在`BackStack`中,我们还可以...

    Android应用源码之按键的处理.zip

    如果处理了按键事件,应返回true,否则返回false。当按键释放时,onKeyUp()会被调用,通常在这里进行清理工作或状态更新。 2. setOnKeyListener() 对于更细粒度的控制,比如只关注特定视图的按键事件,可以使用...

    Android软键盘返回键监听.zip

    总之,监听Android软键盘的返回键事件是一项实用的功能,能够帮助开发者更好地控制用户在应用中的交互流程。无论是通过InputMethodManager,还是通过观察ViewTreeObserver,或者是自定义键盘事件,都有其适用的场景...

    该组件用于ReactNative中获取Android原生层面的键盘响应事件

    通常,这些事件包括方向键、确定键、返回键等。这个特定组件就是为了解决这个问题,它扩展了React Native的能力,使得开发者可以直接在JavaScript层面上监听和响应这些原生键盘事件,而无需深入到Java或Kotlin代码中...

    android重写多任务键,返回键,打开外部链接,打开menu

    本教程将深入探讨如何在Android应用中重写多任务键、返回键,并处理打开外部链接及menu菜单的操作。以下是对这些功能的详细说明: 一、重写多任务键 在Android系统中,多任务键(通常位于屏幕下方的硬件按键或屏幕...

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

    在Android平台上开发QML应用程序时,经常会遇到与原生Android行为集成的问题,比如处理返回键事件。本篇文章将深入探讨如何使用QML的StackView组件来实现Android的back键返回功能,以及在正常状态下通过双击退出应用...

    Android中实现再按一次返回键退出应用程序

    总结来说,"Android中实现再按一次返回键退出应用程序"的核心是通过重写Activity的onKeyDown()方法,监听返回键事件,并结合时间判断来决定是否真的退出应用。这种设计体现了Android应用开发中的用户体验和交互设计...

    Android 处理按键的响应方式

    例如,`KeyEvent.KEYCODE_ENTER` 表示回车键,`KeyEvent.KEYCODE_BACK` 表示返回键。你可以通过比较 `keyCode` 来识别特定的按键。 4. **BroadcastReceiver** 对于系统级的按键事件,比如电源键或者音量键,可以...

    Android应用源码之返回键退出程序的两种方式.zip

    - 对于多Activity的应用,可能需要在多个Activity中处理返回键事件,以确保所有Activity都能正确退出。 以上就是Android应用中实现返回键退出程序的两种常见方法。在实际开发中,开发者应根据项目需求和用户体验来...

Global site tag (gtag.js) - Google Analytics