Android中home键和back键区别实例分析

 更新时间:2015年09月22日 12:17:11   作者:Ruthless  
这篇文章主要介绍了Android中home键和back键区别,以实例形式较为详细的分析并总结了home键和back键区别及使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例分析了Android中home键和back键区别。分享给大家供大家参考。具体如下:

back键

Android的程序无需刻意的去退出,当你一按下手机的back键的时候,系统会默认调用程序栈中最上层Activity的Destroy()方法来销毁当前Activity,当此Activity又被其它Activity启动起来的时候,会重新调用OnCreate()方法进行创建,当栈中所有Activity都弹出结束后,应用也就随之结束了.如果说程序中存在service之类的,则可以在恰当的位置监听处理下也就可以了.

home键

Android程序的隐藏,当你按下手机的Home键的时候,系统会默认调用程序栈中最上层Activity的stop()方法,然后整个应用程序都会被隐藏起来,当你再次点击手机桌面上应用程序图标时,系统会调用最上层Activity的OnResume()方法,此时不会重新打开程序,而是直接进入,会直接显示程序栈中最上层的Activity.

实现按Home键时隐藏程序的效果:

1. Android 2.0之前需要监听按键事件,进行判断是不是按下了back键
2. Android 2.0之后系统提供了一个onBackPressed()方法,这个方法就是专门用来监听back键事件的,所以只需重写onBackPressed()方法即可

@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); 
}

退出应用程序的实现:可以自己写个方法,例如:

public void exitProgrames(){ 
  Intent startMain = new Intent(Intent.ACTION_MAIN); 
  startMain.addCategory(Intent.CATEGORY_HOME); 
  startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
  startActivity(startMain); 
  android.os.Process.killProcess(android.os.Process.myPid()); 
}

注意:需要添加权限:<uses-permission android:name="android.permission.RESTART_PACKAGES" />

希望本文所述对大家的Android程序设计有所帮助。

相关文章

  • 自定义AlertDialog去除黑色背景的解决方法

    自定义AlertDialog去除黑色背景的解决方法

    今天小编就为大家分享一篇自定义AlertDialog去除黑色背景的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • Android中编写属性动画PropertyAnimation的进阶实例

    Android中编写属性动画PropertyAnimation的进阶实例

    这篇文章主要介绍了Android中编写属性动画PropertyAnimation的进阶实例,包括一些缩放和淡入淡出效果的设计,强大且不算复杂,需要的朋友可以参考下
    2016-04-04
  • Android中设置组件半透明和透明的效果示例

    Android中设置组件半透明和透明的效果示例

    这篇文章主要给大家介绍了Android中设置组件半透明和透明效果的相关资料,文中给出了详细的介绍和示例代码,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-05-05
  • Android生成二维码工具类封装及使用

    Android生成二维码工具类封装及使用

    最近公司业务上有个生成二维码图片的需求(Android端),之后笔者在网上查阅了一些资料,实现了这个功能,这篇文章主要给大家介绍了关于Android生成二维码工具类封装及使用的相关资料,需要的朋友可以参考下
    2024-04-04
  • Android中TabLayout添加小红点的示例代码

    Android中TabLayout添加小红点的示例代码

    本篇文章主要介绍了Android中TabLayout添加小红点的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • Android 利用广播监听usb连接状态(变化情况)

    Android 利用广播监听usb连接状态(变化情况)

    这篇文章主要介绍了Android 利用广播监听usb连接状态,需要的朋友可以参考下
    2017-06-06
  • Android实现RecyclerView嵌套流式布局的详细过程

    Android实现RecyclerView嵌套流式布局的详细过程

    最近在做需求的时候,碰到有各种筛选项的界面,下面这篇文章主要给大家介绍了关于Android实现RecyclerView嵌套流式布局的详细过程,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-12-12
  • Android开发壁纸的验证设置和确认功能实现demo

    Android开发壁纸的验证设置和确认功能实现demo

    android wallpaper包括锁屏壁纸和桌面壁纸,壁纸又区分静态和动态两种。本文详细介绍静态壁纸设置和确认,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2022-04-04
  • Android ViewModel的使用总结

    Android ViewModel的使用总结

    ViewModel 是 Jetpack 的一部分。 ViewModel 类旨在以注重生命周期的方式存储和管理界面相关的数据。ViewModel 类让数据可在发生屏幕旋转等配置更改后继续留存。本文简单讲解ViewModel的使用
    2021-06-06
  • android @override 报错解决方案

    android @override 报错解决方案

    android @override 报错:就是说Java 1.5的编译器默认对父类的方法进行覆盖,采用@Override进行说明;但1.6已经扩展到对接口的方法;所以如果还是以Java 1.5的编译器来编译的话,会出现错误
    2012-12-12

最新评论