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

所属分类: 软件编程 / Android 阅读数: 921
收藏 0 赞 0 分享

接下来讲一种完美的方案。
因为第一个界面是欢迎界面,所以快捷方式启动的界面也是欢迎界面,刚开始就怀疑快捷方式创建的代码有问题,但不知道问题出在哪儿。猜测可能会是快捷方式的错误导致系统创建两个应用,就也是同一个应用会有两个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] ,于是乎在代码中加上(请参照上一篇的代码,只添加了第三行):
复制代码 代码如下:

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,不会启动两个应用,退出也只需要一次,太给力了!至于为什么就留给看客你了。

更多精彩内容其他人还在看

Android网络编程之获取网络上的Json数据实例

这篇文章主要介绍了Android网络编程之获取网络上的Json数据实例,本文用完整的代码实例讲解了在Android中读取网络中Json数据的方法,需要的朋友可以参考下
收藏 0 赞 0 分享

Android中的windowSoftInputMode属性详解

这篇文章主要介绍了Android中的windowSoftInputMode属性详解,本文对windowSoftInputMode的9个属性做了详细总结,需要的朋友可以参考下
收藏 0 赞 0 分享

Android网络编程之UDP通信模型实例

这篇文章主要介绍了Android网络编程之UDP通信模型实例,本文给出了服务端代码和客户端代码,需要的朋友可以参考下
收藏 0 赞 0 分享

Android中使用ListView实现漂亮的表格效果

这篇文章主要介绍了Android中使用ListView实现漂亮的表格效果,本文用详细的代码实例创建了一个股票行情表格,需要的朋友可以参考下
收藏 0 赞 0 分享

Android中刷新界面的二种方法

这篇文章主要介绍了Android中刷新界面的二种方法,本文使用Handler、postInvalidate两种方法实现界面刷新,需要的朋友可以参考下
收藏 0 赞 0 分享

Android SDK三种更新失败及其解决方法

这篇文章主要介绍了Android SDK三种更新失败及其解决方法,需要的朋友可以参考下
收藏 0 赞 0 分享

Android学习笔记——Menu介绍(一)

Android3.0(API level 11)开始,Android设备不再需要专门的菜单键。随着这种变化,Android app应该取消对传统6项菜单的依赖。取而代之的是提供anction bar来提供基本的用户功能
收藏 0 赞 0 分享

Android学习笔记——Menu介绍(二)

这次将继续上一篇文章没有讲完的Menu的学习,上下文菜单(Context menu)和弹出菜单(Popup menu)
收藏 0 赞 0 分享

Android学习笔记——Menu介绍(三)

今天继续昨天没有讲完的Menu的学习,主要是Popup Menu的学习,需要的朋友可以参考下
收藏 0 赞 0 分享

Android显示网络图片实例

这篇文章主要介绍了Android显示网络图片的方法,以实例形式展示了Android程序显示网络图片的方法,非常具有实用价值,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多