欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

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

程序员文章站 2023-08-12 15:57:25
本文实例分析了android中home键和back键区别。分享给大家供大家参考。具体如下: back键 android的程序无需刻意的去退出,当你一按下手机的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程序设计有所帮助。