解析android创建快捷方式会启动两个应用的问题

2016-02-19 09:09 8 1 收藏

有一种朋友不在生活里,却在生命力;有一种陪伴不在身边,却在心间。图老师即在大家的生活中又在身边。这么贴心的服务你感受到了吗?话不多说下面就和大家分享解析android创建快捷方式会启动两个应用的问题吧。

【 tulaoshi.com - 编程语言 】

接下来讲一种完美的方案。
因为第一个界面是欢迎界面,所以快捷方式启动的界面也是欢迎界面,刚开始就怀疑快捷方式创建的代码有问题,但不知道问题出在哪儿。猜测可能会是快捷方式的错误导致系统创建两个应用,就也是同一个应用会有两个PID,结果在控制台查看打印的LOG,不同方式启动的LOG如下:
代码如下:

09-22 09:39:11.929: INFO/ActivityManager(61): Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.android.xxx/.activity.InitActivity } from pid 19304
09-22 09:39:12.876: INFO/ActivityManager(61): Displayed com.android.xxx/.activity.InitActivity: +763ms

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

09-22 09:39:47.668: INFO/ActivityManager(61): Starting: Intent { act=android.intent.action.MAIN flg=0x10000000 cmp=com.android.xxx/.activity.InitActivity bnds=[5,392][115,510] } from pid 19304
09-22 09:39:48.737: INFO/ActivityManager(61): Displayed com.android.xxx/.activity.InitActivity: +995ms

最后发现两个PID是一致的(InitActivity是欢迎界面的Activity),可能是意外,把这两个LOG作比较会发现从列表中点击图标启动应用时是上面的LOG,通过快捷方式启动的是下面的LOG,通过比较会发现,以快捷方式启动应用时会比另外一种方式少了cat=[android.intent.category.LAUNCHER] ,于是乎在代码中加上(请参照上一篇的代码,只添加了第三行):
代码如下:

ComponentName comp = new ComponentName(this.getPackageName(), this.getPackageName() + "." +this.getLocalClassName());    
Intent intent = new Intent(Intent.ACTION_MAIN).setComponent(comp); 
intent.addCategory(Intent.CATEGORY_LAUNCHER); 
shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, intent); 

再跑应用一切OK,不会启动两个应用,退出也只需要一次,太给力了!至于为什么就留给看客你了。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

来源:https://www.tulaoshi.com/n/20160219/1589755.html

延伸阅读
标签: 浏览器
谷歌浏览器打开网页创建快捷方式的办法?   有时打开的网页需要创建快捷方式,但是由于使用的是谷歌浏览器,在打开的网页中,点击鼠标右键,没有出现创建快捷方式的选项。(不得不吐槽一下,自从使用谷歌浏览器后,就感觉ie浏览器各种卡。。。)这对习惯于使用IE浏览器创建页面快捷方式,把页面链接放到桌面以便日后再看的朋友来说,着...
win7旗舰版系统下如何批量创建快捷方式   方法一、批量建立指定目录文件夹的快捷方式 在ghost Win7系统中,通过Win7的多个目录下同时搜索的功能找到多个文档或程序,选中多个对象后,然后点击鼠标右键,在菜单中的群复制功能,右击需要建立快捷方式的目录选择建立快捷方式即可。 方法二、批量建立快捷方式到桌面 ...
标签: windows 操作系统
有许多人抱怨说Vista中进入网络连接管理非常麻烦,没错,如果不熟悉的用户根本就很难找到。因为XP中通过开始菜单就能很方便的进入,但是到了Vista中,你需要右击系统任务栏中的连接图标-网络共享中管理网络连接(左侧面板),如此才能进入。 下面就为大家介绍一个非常简便的进入方式,可以成为一键式。你所需要做的就是创建一个快捷方式: ...
标签: 电脑入门
1、找到安装应用程序的安装路径,然后直接将应用程序的图标右击选择发送桌面快捷方式。 2、桌面空白右击新建快捷方式 然后弹出一个框,你可以在点击浏览,然后选择你所知道的安装后路径,找到该文件或文件夹后点击确定然后点击下一步,输入快捷方式名称点击完成。 3、 Windows8的开始菜单图标发送到桌面,进入Metro...
标签: 电脑入门
Windows8 IE10如何创建快捷方式到桌面上? 文章编号:090289 2012-11-28 17:09 故障现象: Windows8 IE10如何创建快捷方式到桌面上? 解决方案: Windows8桌面无法直接调出IE10桌面图标,可以通过以下2种常规的操作方式将IE图标发送桌面上 1. 打开路径C:Program FilesInternet Explorer将其图标发送桌面快捷方式 2. 按住shift键同时鼠标右...

经验教程

95

收藏

49
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部