** 现在做的项目有一个特殊的需求,众所周知,一个APP有一个主程序界面,一般是luncher的界面,通过这个主界面又可以进入很多界面,但是楼主这个程序需要为一个独立于主界面的子界面做一个独立的shortcut,暂且称之为A界面。
做着做着快捷方式我突然发现一个问题,就是一个app虽然可以通过修改shortcut的Intent参数来为不同的界面创建不同的快捷方式,但是每次点击A界面的快捷方式,在启动A界面的Activity之前总会先调用主界面,楼主的A界面是一个背景透明的悬浮在桌面上的对话框,结果背景变成程序主界面,楼主整个人都不好了。
楼主百思不得其解,找了又找,网上好多blog都是告诉如何创建快捷方式你抄我的我抄你的(就像楼主上一篇文章一样)。楼主最后只好反便宜了某一巨头平台软件,在XML中发现了蛛丝马迹。哈哈!!!!!!!!原来快捷方式的调用也是根据程序栈来的,秉承栈先进后出的原则,每次调用A界面,主程序就被调出来了。所以只需在A界面的XML中配置如下*
android:theme="@android:style/Theme.Translucent"
android:screenOrientation="portrait"
android:configChanges="locale|keyboardHidden"
android:taskAffinity="com.***.***"
注意这段代码这里写代码片
android:taskAffinity="com.***.***"
这里就是把A独立于程序的栈之外,属性内容随便写。这样遍大功告成了。
可是楼主又发现一个问题,这种方法创建的shortcut我竟然没有办法回收和更新,也许是这个shortcut不在主栈内,所以context的管不到他了。
然后看了各个巨头的应用 发现他们竟然也没办法做到!!哈哈时间紧迫楼主就没有深究了,产品来要我就说BAT都做不到!
如果各位看官发现了能解决的办法一定要告诉楼主啊,么么哒!
网友评论