2 yang163 yang yang163_yang 于 2014.05.16 16:13 提问

android 创建应用快捷方式

我在程序第一次启动时创建应用快捷方式,从网上搜到的方法:
//创建快捷方式的Intent
Intent shortcutintent = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");
//不允许重复创建
shortcutintent.putExtra("duplicate", false);
//需要现实的名称
shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_NAME, application.getString(R.string.app_name));
//快捷图片
Parcelable icon = Intent.ShortcutIconResource.fromContext(application.getApplicationContext(), R.drawable.launcher);
shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon);
//点击快捷图片,运行的程序主入口
shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(application.getApplicationContext() ,
WelcomeActivity.class));
//发送广播。OK
application.sendBroadcast(shortcutintent);

确实可以创建一个快捷方式,但是有如下问题:
入口为WelcomeActivity, 如果从启动器界面打开应用,并跳到另外一个Activity。 点击快捷方式永远都是再次跳转到一个新的WelcomeActivity实例, 而不是恢复当前状态。
如何处理能够使点击快捷方式是恢复到当前的Activity界面,而不是实例化一个新的目标Activity ?

1个回答

yang163_yang
yang163_yang   2014.05.16 17:35

已找到解决方案:
Intent shortcutintent = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");
//不允许重复创建
shortcutintent.putExtra("duplicate", false);
//需要现实的名称
shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_NAME, application.getString(R.string.app_name));
//快捷图片
Parcelable icon = Intent.ShortcutIconResource.fromContext(application.getApplicationContext(), R.drawable.launcher);
shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon);
//点击快捷图片,运行的程序主入口
Intent intent = new Intent();
intent.setAction(Intent.ACTION_MAIN);
intent.addCategory("android.intent.category.LAUNCHER");
intent.setComponent(new ComponentName(application.getPackageName(), WelcomeActivity.class.getName()));
shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, intent);
//发送广播。OK
application.sendBroadcast(shortcutintent);

重点是addCategory("android.intent.category.LAUNCHER");

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Android创建应用快捷方式(ShortCut)的有效方式
有时候我们需要为自己的APP,创建桌面快捷方式,本文将介绍有效的方式,避免出现重复创建,或者创建失败的情况。通常应用安装后,第一次打开,去检测当前应用的快捷方式是否创建,如果没有创建,我们就帮生成桌面shortcut,否则不创建。 PS:最好不要每次进入应用都去创建,这样可能频繁提示用户快捷图标已经创建。 下面贴代码介绍生成应用快捷方式的工具类。1.创建快捷方式:发送广播需要设置好程序名,图标,
Android 为应用创建多个桌面快捷方式,可在卸载时自动删除桌面快捷方式
引言:有时候,我们需要多个app入口的快捷方式,其实很简单。闲话少说,看下面: 为应用创建快捷方式目前有两种方法: 一、权限:  1. 在AndroidManifest.xml中添加权限:                     2. 在启动Activity中发送广播: 对于第一个个程序入口MainActivity,在AndroidManif
Android开启应用时自动创建快捷方式
今天在使用360手机助手时,发现它会自动创建一个快捷启动方式,感觉挺有意思的,所以就上网百度了一些方法,试了一下,有一种方法是挺不错的,我借鉴来用用,先保存下来,我也写了一个测试小程序。      首先,在你要启动应用的mainActivity里添加代码,在onCreate()方法里,加一个方法createShortCut(); 然后就是方法的实现:private void createSho
关于android创建快捷方式会启动两个应用的问题(一)
 在做创建应用快捷方式时遇到两个问题: 一、创建快捷方式OK,但测试时MOTO部分机型会报错,原因也在Log里面给提示,如下: [java] view plain copy print? java.lang.SecurityException: Permission Denial: opening provider com.motorola.blur.h
android 创建快捷方式的两种途径
1.   在清单文件里面进行注册:例如: <activity android:name="com.android.master.legend.widget.CreateSystemSettingsWidgetActivity" android:exported="true" android:icon="@drawable/
安卓app如何在安装时创建快捷方式
1:首先声明权限: uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" /> 2:在启动页里面的onCreate方法(或其他合适的方法)中执行如下方法: public void initShortCut() { // intent发送隐式意图,去创建快捷方式
Android应用快捷方式
有的App会给用户提供快捷方式,8.0之前我们多是通过发送com.android.launcher.action.INSTALL_SHORTCUT 广播的方式来实现。但在8.0的系统行为变更中指出,该广播变为私有的隐式广播,因此原来创建快捷方式的方法在8.0的系统上将不再有效,官方推荐我们使用ShortcutManager来创建应用快捷方式。快捷方式应用场景及类型快捷方式应用场景Android 7.
android,解决手动创建的桌面快捷方式无法跳转到制定的activity的问题,提示未安装应用程序
android,解决手动创建的桌面快捷突变无法跳转到制定的activity的问题 第一步也是最关键的一步: mainfest.xml中:                     android:name=".activity.NotesEdit"                android:theme="@style/ActivityTheme" >              
Android 创建快捷方式,并传值到指定界面
项目需要,创建一个动作的快捷方式到桌面,点击快捷方式作出相应的接口请求。 //创建一个添加快捷方式的Intent Intent addSC=new Intent("com.android.launcher.action.INSTALL_SHORTCUT"); //快捷键的标题
[Android] Android应用启动后自动创建桌面快捷方式
和IOS开发和Windows Phone开发相比,Android是开放的,Android上的开发也相对更加灵活,能够做很多事情。有的朋友会发现,在某些Android应用安装以后,第一次运行,就会在桌面创建快捷方式。这是如何做到的呢?要不怎么说Android特别开放呢,在Android开发中,只要发送一个广播,就可以实现这种需求了。废话不多说,以下是封装好的一段代码。public class Sho