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

转载 2012年03月25日 13:41:37

接下来讲一种完美的方案。

因为第一个界面是欢迎界面,所以快捷方式启动的界面也是欢迎界面,刚开始就怀疑快捷方式创建的代码有问题,但不知道问题出在哪儿。猜测可能会是快捷方式的错误导致系统创建两个应用,就也是同一个应用会有两个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


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] ,于是乎在代码中加上(请参照上一篇的代码,只添加了第三行):

[java] view plaincopy
  1. ComponentName comp = new ComponentName(this.getPackageName(), this.getPackageName() + "." +this.getLocalClassName());     
  2. Intent intent = new Intent(Intent.ACTION_MAIN).setComponent(comp);  
  3. intent.addCategory(Intent.CATEGORY_LAUNCHER);  
  4. shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, intent);  

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

相关文章推荐

关于android创建快捷方式会启动两个应用的问题(一)

在做创建应用快捷方式时遇到两个问题: 一、创建快捷方式OK,但测试时MOTO部分机型会报错,原因也在Log里面给提示,如下: java.lang.SecurityException: Perm...

解析Android快捷方式以及启动两个应用

1、背景描述
  • ljtyzhr
  • ljtyzhr
  • 2014年11月03日 13:38
  • 782

Android开发:应用启动后自动创建桌面快捷方式(三星机常见)

Android开发:应用启动后自动创建桌面快捷方式(三星机常见)

[Android] Android应用启动后自动创建桌面快捷方式

和IOS开发和Windows Phone开发相比,Android是开放的,Android上的开发也相对更加灵活,能够做很多事情。有的朋友会发现,在某些Android应用安装以后,第一次运行,就会在桌面...
  • arui319
  • arui319
  • 2012年03月21日 15:01
  • 7761

Android 开发之系统应用Launcher详解,简单添加和删除快捷方式及常见问题

转载自:http://blog.csdn.net/t12x3456/article/details/7857925 Android 开发之系统应用Launcher详解,简单添加和删除快捷方式...
  • yy228
  • yy228
  • 2012年08月13日 14:30
  • 533

[Android]为指定的应用创建桌面快捷方式

转载地址:http://blog.csdn.net/sodino/article/details/6624521 网上一搜一大把为自己的应用创建快捷方式,但是本文的侧重点在为“指定的应用”创...

Android 为应用创建、删除桌面快捷方式

为应用创建快捷方式目前有两种方法: 1. 程序启动时主动添加快捷方式到桌面; 2....
  • JJMM2009
  • JJMM2009
  • 2014年07月17日 11:21
  • 15616

[Android]为指定的应用创建桌面快捷方式

网上一搜一大把为自己的应用创建快捷方式,但是本文的侧重点在为“指定的应用”创建桌面快捷方式。     常见的桌面快捷方式有两要素:1.应用名 2.应用图标。     指定应用图标的信息是: /...

Android应用添加(创建)和删除及判断是否存在桌面快捷方式

Android桌面程序提供了应用添加和删除桌面快捷方式的功能以及判断快捷方式是否存在,只要传入快捷方式标题、图标及点击快捷方式执行的应用Intent即可。代码如下: /** * 为当前应用添加桌...
  • tianzhw
  • tianzhw
  • 2012年08月09日 09:14
  • 782
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于android创建快捷方式会启动两个应用的问题
举报原因:
原因补充:

(最多只允许输入30个字)