今天同事给了我一个需求,是这样的,手机本身是有打开最近任务的功能的,比如说,按一下菜单键,也就是大部分手机home键的左边,也可以通过双击home键,也可以长按home键,反正每个手机厂商多多少少都有点区别。那么他的手机是通过双击home键弹出这个一个页面的,他不喜欢通过这个方式,而是希望通过打开一个app,然后弹出这样的页面(最近任务)。
方案一:app直接打开,然后调用StatusBarManagerService的toggleRecentApps方法;需要通过反射来调用,这样做有一个小细节,就是,这个app的属性需要加一个excludeFromRecents,让这个app本身不在最近任务列表中。然后打开app后,在oncreate中直接调用toggleRecentApps方法,然后立刻finish,关闭activity。这里要注意下,就是需要把activity设置成透明的,否则会黑屏的闪一下,体验不好。
demo地址:http://download.csdn.net/detail/xiaodousa/9677623,当然,是不收积分的。
方案二:通过桌面部件打开,这个方案,我自己手机测试,是通过的,但是由于他的手机不支持桌面部件,也没有测试(大家是不是猜到了这是什么手机啦)。主要思想就是,生成一个桌面部件,然后给部件增加点击事件,当然如果点击事件是继续跳转到一个activity就没有意义了,和方案一就一样了。所以我把点击事件改成了,发一个广播,自己来接受,然后执行StatusBarManagerService的toggleRecentApps方法。我贴出主要代码吧。
以上