关于android 自个儿实现 back键 home键

关于android 自己实现 back键 home键今天在被问到一个问题的时候突然想要看看这些东西了。因为一直以来,我

关于android 自己实现 back键 home键

今天在被问到一个问题的时候突然想要看看这些东西了。因为一直以来,我返回上个界面,和大家普遍的方法都是一样的。

1. finish()本页面。

2. intent 跳转到上个页面。


一 ,在 按下手机上的 back键时  本页面输出的log是(  onstop  ,onDestory)

关于android 自个儿实现 back键 home键


经过查找是可以用别的方法实现 back键的功能的

1.第一种方法   在你自己的事件里调用。




二 ,在 按下手机上的 home 键时  本页面输出的log是(  onstop  ,onDestory)

关于android 自个儿实现 back键 home键


实现类似home键的代码 :

 Intent intent = new Intent(Intent.ACTION_MAIN); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);               //如果intent不指定category,那么无论intent filter的内容是什么都应该是匹配的。        intent.addCategory(Intent.CATEGORY_HOME);         startActivity(intent);


接下来

一. intent.setFlags()方法中的参数值含义:

1.FLAG_ACTIVITY_CLEAR_TOP

比如 :       现在情况是    A B C D E F G   ,你想从 G 跳到  C  就会变成   A B C D E F G C

加上的话:    A B C (C 后面的 E F G 都会弹出销毁)

这跟上面把 C 的Launch mode设置成singleTask 一样的。

2.FLAG_ACTIVITY_NEW_TASK:

比如: A B C D E F  我现在要从  F 跳转到 G    就变成   A B C D E F G 了

如果从Service启动1个activity 然后加上的话,就会创建出1个新栈  存放 G了

3.FLAG_ACTIVITY_NO_HISTORY

顾名思义 没有历史记录。  比如 :  A B C D E       E 跳转到 F    :(F没有压入栈中,所以没有记录 栈中还是  A B C D E),

                                                再从F跳转到 G :  A B C D E G 就变成这个样子了 返回的话也是从 G到 E。

4.FLAG_ACTIVITY_SINGLE_TOP

和Activity的Launch mode的singleTop类似。如果某个intent添加了这个标志,并且这个intent的目标activity就是栈顶的activity,那么将不会新建一个实例压入栈中。