关于 android app 返回键模拟 home键 功能的介绍_仿QQ返回键 又重新回到当前界面_锁屏状态 又要重新唤醒
2015-12-09 12:44
573 查看
最近有朋友问我 一些 关于 android 应用 退出了界面或应用 后 ,又要回到应用或者某个界面或者退出后且有在锁屏状态 又要重新唤醒(讲分 第一篇,第二篇 分享给大家) :
在这里分享想我的做法,先讲第一篇,模仿 home键功能首先,先讲下 Android home键和back键区别
back键Android的程序无需刻意 的去退出,当你一按下手机的back键的时候,系统会默认调用程序栈中最上层Activity的Destroy()方法来销毁当前Activity,当此 Activity又被其它Activity启动起来的时候,会重新调用OnCreate()方法进行创建,当栈中所有Activity都弹出结束后,应用 也就随之结束了.如果说程序中存在service之类的,则可以在恰当的位置监听处理下也就可以了.
home键
Android程序的隐藏,当你按下手机的Home键 的时候,系统会默认调用程序栈中最上层Activity的stop()方法,然后整个应用程序都会被隐藏起来,当你再次点击手机桌面上应用程序图标时,系 统会调用最上层Activity的OnResume()方法,此时不会重新打开程序,而是直接进入,会直接显示程序栈中最上层的Activity.
第二,先讲下 Android home键和back键区别
实现按Home键时隐藏程序的效果:1:Android 2.0之前需要监听按键事件,进行判断是不是按下了back键
2:Android 2.0之后系统提供了一个onBackPressed()方法,这个方法就是专门用来监听back键事件的,所以只需重写onBackPressed()方法即可
再次,我一般这样用:
@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if (keyCode == KeyEvent.KEYCODE_BACK) {
exitProgrames();
return super.onKeyDown(keyCode, event);
}
public void exitProgrames(){
Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startMain.addCategory(Intent.CATEGORY_HOME);
startActivity(startMain);
// android.os.Process.killProcess(android.os.Process.myPid());
}
或者
@Override
public void onBackPressed() {
//实现Home键效果
//super.onBackPressed();这句话一定要注掉,不然又去调用默认的back处理方式了
Intent i= new Intent(Intent.ACTION_MAIN);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.addCategory(Intent.CATEGORY_HOME);
startActivity(i);
}
可以实现
注意:需要添加权限:<uses-permission android:name="android.permission.RESTART_PACKAGES" />
相关文章推荐
- 微信支付 APP 支付方式的服务器端处理程序
- Android学习笔记(6):Android应用的基本组件
- Android EditText的输入监听,输入字符的动态获取
- 分享一下我封装iOS自定义控件的体会,附上三个好用的控件Demo <时间选择器&多行输入框&日期选择器>
- js createElement appendChild createTextNode用法
- 打包android img文件
- Android自定义Button的“款式”
- Android自定义Button的“款式”
- pAdPt_-6 LearnBdMapBasic[(百度)地图(Android SDK)基础]
- Android PopupMenu 与 PopupWindow(的区别)
- iOS立方体翻转3D特效
- android L 新控件侧滑菜单DrawerLayout 使用教程
- android中Webview与javascript的交互(互相调用)
- iOS 在Xcode中添加多个模拟器
- cocos2dx - 创建地图及玩家(伪)
- appledoc工具的使用
- 原生Native APP和Web APP的区别之处
- Android中SwipeBack右滑返回(手势返回)的实现
- ios同一个Label中的字符设置不同的字体
- Android File类 根据官方文档理解