方式一:按返回键显示退出提示框( 自定义提示框架可以参考[ 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返回键处理
需要注意的是,onBackPressed()方法不适用于TabActivity,因为TabActivity可能有自己的返回键处理逻辑。在处理TabActivity时,应该采用更通用的方法,比如重写dispatchKeyEvent()。 在一些复杂的应用中,比如使用...
在Android中,我们可以通过重写`onKeyDown()`方法来监听硬件返回键的按下事件。 以下是一个简单的示例,展示了如何监听返回按钮并弹出一个确认退出的对话框: ```java @Override protected void onCreate(Bundle ...
Android设备通常配备多个物理按键,包括返回键,这对于应用的导航至关重要。然而,在某些场景下,开发者可能希望禁用或自定义这些行为,例如在游戏或全屏模式下。 首先,让我们理解Android系统如何处理物理按键事件...
总的来说,Cocos2d-js为开发者提供了丰富的API来处理Android返回键事件,通过事件监听机制,我们可以轻松地定制返回键的行为,满足各种应用场景的需求。在实际开发中,结合对Cocos2d-js框架的深入理解和项目需求,...
在Android系统中,Home键、菜单键(在某些设备上是多任务键)和返回键是用户界面的重要组成部分,它们提供了导航和操作的基本方式。然而,在特定的应用场景下,如开发特殊应用或游戏时,开发者可能需要屏蔽这些系统...
在Android系统中,点击两次返回键退出程序是一种常见的应用安全机制,目的是防止用户意外地退出正在使用的应用。这种设计能够确保用户在误触返回键时,不会立即退出应用,而是需要再次确认。以下是对这个主题的详细...
总之,这个测试apk为Android TV上的H5应用开发提供了一次实践机会,让开发者能够理解并解决在大屏幕上集成H5页面时返回键处理的挑战。通过学习和利用这个示例,开发者可以提升自己的TV应用开发能力,为用户提供更...
这是因为返回键事件已经被其他的 onKeyDown 方法处理掉了。具体来说,这个事件是被 Cocos2dxGLSurfaceView 的 onKeyDown 方法处理的。在这个方法中,按键 KeyEvent.KEYCODE_BACK 被监听了,只要在这里不作处理即可...
在安卓(Android)系统中,开发应用程序时,处理返回键以退出程序是常见的需求。本文将深入探讨两种主要的方法,帮助开发者理解并实现这一功能。 首先,我们要知道,Android应用程序通常由多个活动(Activity)组成...
"Android开发实现Fragment监听返回键事件功能的方法" Android开发实现Fragment监听返回键事件功能的方法是Android应用程序开发中非常重要的一种技术。该方法主要用于监听Fragment中的返回键事件,以便在 Fragment ...
为了监听返回键,我们可以在每个Fragment中重写`onBackPressed()`方法,或者使用`onOptionsItemSelected()`来处理ActionBar或系统工具栏上的返回按钮点击事件。同时,如果Fragment嵌套在`BackStack`中,我们还可以...
如果处理了按键事件,应返回true,否则返回false。当按键释放时,onKeyUp()会被调用,通常在这里进行清理工作或状态更新。 2. setOnKeyListener() 对于更细粒度的控制,比如只关注特定视图的按键事件,可以使用...
总之,监听Android软键盘的返回键事件是一项实用的功能,能够帮助开发者更好地控制用户在应用中的交互流程。无论是通过InputMethodManager,还是通过观察ViewTreeObserver,或者是自定义键盘事件,都有其适用的场景...
总结来说,"Android中实现再按一次返回键退出应用程序"的核心是通过重写Activity的onKeyDown()方法,监听返回键事件,并结合时间判断来决定是否真的退出应用。这种设计体现了Android应用开发中的用户体验和交互设计...
综上所述,监听PopupWindow的返回键事件需要结合Activity或Fragment的生命周期以及按键事件处理。通过重写onKeyDown方法或使用OnKeyListener,我们可以根据业务需求控制返回键何时关闭PopupWindow。同时,设置一个...
在Android平台上开发QML应用程序时,经常会遇到与原生Android行为集成的问题,比如处理返回键事件。本篇文章将深入探讨如何使用QML的StackView组件来实现Android的back键返回功能,以及在正常状态下通过双击退出应用...
通常,这些事件包括方向键、确定键、返回键等。这个特定组件就是为了解决这个问题,它扩展了React Native的能力,使得开发者可以直接在JavaScript层面上监听和响应这些原生键盘事件,而无需深入到Java或Kotlin代码中...
本教程将深入探讨如何在Android应用中重写多任务键、返回键,并处理打开外部链接及menu菜单的操作。以下是对这些功能的详细说明: 一、重写多任务键 在Android系统中,多任务键(通常位于屏幕下方的硬件按键或屏幕...
例如,`KeyEvent.KEYCODE_ENTER` 表示回车键,`KeyEvent.KEYCODE_BACK` 表示返回键。你可以通过比较 `keyCode` 来识别特定的按键。 4. **BroadcastReceiver** 对于系统级的按键事件,比如电源键或者音量键,可以...