仿微信公众号发送到桌面快捷方式

最近需要做一个仿微信公众号发送到桌面快捷方式的功能,一直在找资料,做到一定阶段时顺便记录下,如写的不好的地方请各位大大指点。

微信公众号一直有这么一个功能——>将该公众号添加到桌面,然后点击快捷方式直接进入该公众号,

仿微信公众号发送到桌面快捷方式_第1张图片

经过测试发现它点击该快捷方式直接进入该公众号,其他的activtiy都将被销毁掉,比如可以这样测试,首先将公众号发送到桌面,然后再进入另外一个公众号,然后点击主页,再点击桌面上创建的快捷方式进入公众号,你会发现只有打开了默认的这个公众号的页面,(PS:一般正常情况下,是会启动两个应用的,你关闭一个还会出现第二个)。

说到这里肯定有人会猜想是不是activtiy的启动模式有关,没错,我刚开始也是这么想的,所以测试发现,activity的四种启动模式都达不到我要的需求(http://blog.csdn.net/shinay/article/details/7898492),最后找到一个资料http://blog.csdn.net/lincyang/article/details/6893852,看完就猜想应该是快捷方式创建的问题,最后附上创建快捷方式的代码

// 安装的Intent
Intent shortcut = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");
// 快捷名称
shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, tName);
// 快捷图标是否允许重复
shortcut.putExtra("duplicate", false);

Intent shortcutIntent = new Intent(Intent.ACTION_MAIN);
shortcutIntent.putExtra("参数名", "参数值");//可以不传
shortcutIntent.setClassName(getPackageName(), "您应用的入口activtiy的路径");
shortcutIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);

// 快捷图标  TODO 图标处理   将网络图片下载并创建快捷方式图标
Intent.ShortcutIconResource iconRes = Intent.ShortcutIconResource.fromContext(this, R.drawable.ic_head);
shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconRes);

// 发送广播
sendBroadcast(shortcut);
最最最重要的就是为图标添加Flag——>shortcutIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);

添加这个flag的意思就是:必须要与FLAG_ACTIVITY_NEW_TASK配合使用,这个activity新启动一个栈,原来栈被清空,栈中的activity也被销毁。

所以只会出现一个activtiy且只打开一次应用,最后提一个问题:代码里面都有注释,我想讲网络图片下载并用它来创建快捷方式,不知道怎么处理?请懂得各位指点下,我觉得微信公众号也是这样做的,只是我还不知道怎么处理。。。。。

你可能感兴趣的:(快捷方式总结,android,微信,快捷方式)