在一个界面弹出AlertDialog后屏蔽home键
AlertDialog dialog = builder.create();
dialog.setOnKeyListener(new DialogInterface.OnKeyListener() {
@Override
public boolean onKey(DialogInterface dialog, int keyCode,
KeyEvent event) {
// TODO Auto-generated method stub
if (keyCode == KeyEvent.KEYCODE_HOME)
return true;
return false;
}
});
dialog.show();
dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG);
public class BaseProgressDialog extends ProgressDialog {
public BaseProgressDialog(Context context) {
super(context);
setOnShowListener(new DialogInterface.OnShowListener() {
@Override
public void onShow(DialogInterface dialog) {
// TODO Auto-generated method stub
getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG);
}
});
}
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
// TODO Auto-generated method stub
switch (event.getKeyCode()) {
case KeyEvent.KEYCODE_HOME:
return true;
}
return super.dispatchKeyEvent(event);
}
public static BaseProgressDialog show(Context context, CharSequence title,
CharSequence message) {
BaseProgressDialog dialog = new BaseProgressDialog(context);
dialog.setTitle(title);
dialog.setMessage(message);
dialog.setIndeterminate(false);
dialog.setCancelable(false);
dialog.setOnCancelListener(null);
dialog.show();
return dialog;
}
}
分享到:
相关推荐
综上所述,通过创建`TYPE_KEYGUARD_DIALOG`类型的对话框并设置适当的监听器,可以在Android 4.0系统上实现Home键的捕获。不过,开发者在实际应用中还需要考虑到兼容性、用户体验以及性能等方面的问题。
Android 部分机型没有物理按键,只有虚拟按键,Activity全屏方法如下: 1、在 setContentView(R.layout.activity_main);之前添加 getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_...
Android 解决监听home键的几种方法 前言: 以下两种方法可以完美解决监听back键,home键,多任务键(最近任务键)。 一、使用注册广播监听home键、多任务键 演示图 创建一个广播代码如下: class InnerRecevier ...
在Android开发中,模态对话框(Modal Dialog)是一种常见的用户界面元素,它强制用户与当前弹出的对话框...在实际开发中,还要考虑如何处理返回键、Home键等事件,确保对话框能够正常关闭,避免出现未预期的用户体验。
例如,我们可以注册一个BroadcastReceiver,当接收到特定动作的广播时,判断其`reason`是否为`SYSTEM_DIALOG_REASON_HOME_KEY`,如果是,则说明是Home键被按压了。此时,我们可以根据需要执行特定的逻辑,比如弹出...
在Android开发中,对Home键和Back键的监听是非常基础而又重要的一项功能。本文将详细介绍监听这两个按键的区别以及如何实现Home键的监听,并且提供了一段示例代码。 首先,我们需要了解在Android系统中按下Home键和...
在Android系统中,监听Home键事件并非像监听其他硬件按键那样简单,因为Home键被设计为用户快速返回主屏幕的快捷方式,系统默认不会允许开发者对其进行完全的拦截和控制。然而,通过一些特殊的方式,我们可以实现对...
例如,当用户在登录过程中按下Home键,可以通过BroadcastReceiver监听系统广播,以便在用户重新打开应用时恢复Dialog的状态。 至于`BroadCastTest`这个文件名,可能是与测试Dialog关闭事件或Activity恢复时重新显示...
此外,如果希望在其他地方处理返回事件,例如在Fragment中,可以使用`onOptionsItemSelected()`方法监听`OptionsItemSelectedEvent`,并检查`MenuItem`的`itemId`是否为`android.R.id.home`,这代表了应用栏中的返回...
在描述的问题中,开发者遇到了一个具体的异常情况:当`Dialog`打开时,如果用户尝试通过点击设备的Home键返回主屏幕,可能会引发异常。这个问题通常与`Dialog`的生命周期管理不当有关。在Android中,`Activity`有...
当需要在应用内模拟用户按下Home键的行为时,可以通过启动一个带有特定Intent的动作来实现。 ```java public void goToDestop(Context context) { Intent intent = new Intent(Intent.ACTION_MAIN); intent....
case android.R.id.home: // 这里处理Menu键被按下的情况 // 可以自定义你的操作 return true; default: return super.onOptionsItemSelected(item); } } ``` 不过,现在大多数设备和应用使用的是ActionBar...
在Android开发中,自定义对话框(Custom Dialog)是一种常用的设计模式,用于向用户展示一些重要信息或进行关键操作的确认。本项目着重探讨如何创建一个自定义对话框,并实现对返回键和菜单键的监听功能,以提供更加...
final String SYSTEM_DIALOG_REASON_HOME_KEY = "homekey"; @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (action.equals(Intent....
if (item.getItemId() == android.R.id.home) { Intent intent = new Intent(this, MainActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent); finish(); return true; ...
- 选择“Run” > “Open Run Dialog”或“Run” > “Open Debug Dialog”。 - 选择“Android Application”,点击“New”。 - 输入配置名称。 - 选择启动的Activity。 - 点击“Apply”保存配置,点击“Run”或...
android BitMap、Drawable、inputStream及byte[] 互转,dp和px之间转换,还原短信,横竖屏切换,获取各种窗体高度,禁用home键盘,开机启动,开机启动应用,挪动dialog的位置,判断网络状态,权限列表,设置apn,调节屏幕亮度,...
3. **暂停阶段**: 如果Activity被部分遮挡(比如半透明对话框)或完全隐藏(如按下Home键),系统会调用`onStop()`。此时,Activity对用户不可见,但其状态仍被内存保留。 4. **恢复阶段**: 当Activity重新回到前台...
除了`KEYCODE_BACK`,还有许多其他的按键代码,如`KEYCODE_MENU`(菜单键)、`KEYCODE_HOME`(主页键)等,开发者可以根据需求来处理这些按键的事件。 在深入研究`onKeyDown`之前,需要理解Android的事件处理机制。...