iphone上的home键 按一次home键,返回主界面。双击home键,出现后台运行程序。按电源键3秒后,同时按住home键10秒,松开电源键,保持home键15秒,进入DEF模式(越狱用)。 Android上的home键 常见用法: 按一次返回主屏幕,或进入所有应用程序界面; 按home键不动,显示最近打开的应用程序。 细节: 正在执行某应用程序的时候,当你按下手机的Home键的时候,系统会默认调用程序栈中最上层Activity的stop()方法,然后整个应用程序都会被隐藏起来,当你再次点击手机桌面上该应用程序图标时,系统会调用最上层Activity的OnResume()方法,此时不会重新打开程序,而是直接进入。会直接显示程序栈中最上层的Activity。可是视为应用程序的“暂停”,”停止“(需要应用程序的支持)。 home 和 back 键的区别 在Android中,当按下Home键,默认情况下stop前台的actiity,即activity设置成onstop,而不是ondestory。如果再次启动该activity不是调用onCreate,而是调用onSavedInstanceState方法,保持上次Activity的状态则是从onRestart开始->onStart->onResume;而当按下back键则不同,back键默认finish前台的activity,即activity的状态为onDestory为止,再次启动该activity则从onCreate开始,不会调用onSavedInstanceState方法。 开发人员相关,捕获home的方法: 1. 在activity中加上这段代码就可以屏蔽home键(onKeyDown事件会捕捉到home键)。 ------------------------------------------------- public void onAttachedToWindow() { this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD); super.onAttachedToWindow(); } public void onAttachedToWindow() { this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD); super.onAttachedToWindow(); } 2.因为android系统自己对与home键power键在PhoneWindowManager中做了处理,不会返回到上层应用的。以下为系统源码: \frameworks\policies\base\phone\com\android\internal\policy\impl\PhoneWindowManager.java 1089行 if (code == KeyEvent.KEYCODE_HOME) { // If a system window has focus, then it doesn't make sense // right now to interact with applications. WindowManager.LayoutParams attrs = win != null ? win.getAttrs() : null; if (attrs != null) { final int type = attrs.type; if (type == WindowManager.LayoutParams.TYPE_KEYGUARD || type == WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG) { // the "app" is keyguard, so give it the key return false; } final int typeCount = WINDOW_TYPES_WHERE_HOME_DOESNT_WORK.length; for (int i=0; i |