Android开发_关于如何屏蔽Home键

今天在遇到一个要屏蔽Home键的问题,研究一上午终于解决,方法记录于下:

  

    在Android2.3版本以下重写以下方法就能屏蔽Home键:

public void onAttachedToWindow() {
      this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
      super.onAttachedToWindow();
}

    在Android4.0以上版本用onAttachedToWindow()方法会报错,需要利用以下方法屏蔽:

public static final int FLAG_HOMEKEY_DISPATCHED = 0x80000000; //需要自己定义标志
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    this.getWindow().setFlags(FLAG_HOMEKEY_DISPATCHED, FLAG_HOMEKEY_DISPATCHED);//关键代码
    setContentView(R.layout.main);
}

    再重写onKeyDown方法即可:

@Override
public boolean onKeyDown( int keyCode, KeyEvent event) {
if (keyCode == event. KEYCODE_HOME) {
 return true;
 }
 return super.onKeyDown(keyCode, event);
}

在AndroidMainfest.xml需要加权限:  
<uses-permission android:name = "android.permission.DISABLE_KEYGUARD"/><!-- 屏蔽HOME键需要的权限 -->

在配置文件中,在你使用了Notification的activity中加一个属性android: android:launchMode="singleInstance"

时间: 2024-10-20 01:27:25

Android开发_关于如何屏蔽Home键的相关文章

Android开发_*.R文件无法自动生成

问题描述:             今天是我决定专注Android开发的第一天,我在网上下载了一个数独游戏的源码,准备开始着手学习.在导入之后出现Java文件中import *.R文件报错,在gen目录下面没有找到R.java,于是自己创建了个,然后开始了寻找自动更新的方法. 问题解决:             在经过寻找后,最后发现是自己的项目中没有mainactivity.java.原因是项目的安装版本不同,我使用的是eclipse3.7.2加插件,因为版本比较低,不支持自定义自定义主界面,

Android开发_创建HelloWorld

1.打开eclipse.File--->New--->Project--->Android Application project,然后next. Minimum Required SDK:你的程序最低支持运行Android系统版本. (为什么我不选择2.0或者更低,由于安装的ADT版本23.0.6,如果min sdk选择了14以下,也就是4.0以下的版本,会出现appcompat_v7,不太理解这个是什么.了解的可以参考这篇文章http://blog.chinaunix.net/uid

在Android开发中,当按下home键程序会完全退出时,解决这个BUG:

把这段代码贴到 super.onCreate(savedInstanceState);  之后 //remenber process if(!this.isTaskRoot()) { //判断该Activity是不是任务空间的源Activity,“非”也就是说是被系统重新实例化出来 //如果你就放在launcher Activity中话,这里可以直接return了 Intent mainIntent=getIntent(); String action=mainIntent.getAction(

Android开发_备份短信

 短信备份的原理 短信备份的原理,是用内容提供者读取短信,然后保存. public class SmsBackupUtils { // 回调接口 public interface SmsBackupCallback { /** * 短信备份前调用 * @param total 短信的总条数 */ public void beforeSmsbackup(int total); /** * 短信调用中调用 * @param progress 短信的进度 */ public void progre

Android开发_关于点击事件

为了防止用户或者测试MM疯狂的点击某个button: 创建一个工具类 public class Tools { private static long lastClickTime; public static boolean isFastDoubleClick() { long time = System.currentTimeMillis(); if ( time - lastClickTime < 500) { return true; } lastClickTime = time; ret

九、Android学习笔记_ Android开发中使用软引用和弱引用防止内存溢出

在<Effective Java 2nd Edition>中,第6条"消除过期的对象引用"提到,虽然Java有 垃圾回收机制,但是只要是自己管理的内存,就应该警惕内存泄露的问题,例如的对象池.缓存中的过期对象都有可能引发内存泄露的问题.书中还提到可以用 WeakHashMap来作为缓存的容器可以有效解决这一问题.之前也确实遇到过类似问题,但是没有接触过"弱引用"相关的问题,于是查阅了一些资料. <Java 理论与实践: 用弱引用堵住内存泄漏>

android开发中,两个按下手机实体返回键,两个Activity反复来回跳转的问题

android开发中,对于用intent实现跳转的Ativity,有时候按下手机的返回键时,两个Activity之间会多次相互跳转,始终退出不了程序的情况.这是由于从Activity  A跳转到Activity  B时,A被压入Activity栈中:当从B返回时,默认又重新创建了一个Activity A对象,这样一来就有了多个Activity A对象.所以造成了无法退出情况. 解决办法是:在AndroidManifest.xml文件中找到Activity A项,在其属性中加入  android:

android应用开发_网络部分2——采用HttpURLConnection获取获取网页源代码

本文是android应用开发_网络部分1——采用HttpURLConnection获取网络图片的延续练习. 接下来,我们再来一个查看网页源代码的工程来加深了解. 布局上还是一个竖直排列的线性布局,一个edittext用于输入html路径,一个button,用于点击获取,一个textview用于显示. main.xml 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:and

Android系统onKeyDown监控/拦截/监听/屏蔽返回键、菜单键和Home键

在Android系统中用来显示界面的组件(Component)为Activity,也就是说只有重写Activity的onKeyDown方法来监控/拦截/屏蔽系统的返回键(back).菜单键(Menu)及Home键. 1.拦截/屏蔽返回键.菜单键实现代码 @Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {    if(keyCode == KeyEvent.KEYCODE_BACK) { //监控/拦截/屏蔽返回键