我在打开应用程序时创建快捷方式,但问题是如果我打开应用程序20次然后创建20个快捷方式,则创建一个始终打开应用程序的快捷方式
我需要只创建第一个打开的快捷方式
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ShortcutIcon();
}
private void ShortcutIcon(){
Intent shortcutIntent = new Intent(getApplicationContext(), Main.class);
shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
Intent addIntent = new Intent();
addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "Whatsapp Imagenes");
addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(getApplicationContext(), R.drawable.icono));
addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
getApplicationContext().sendBroadcast(addIntent);
}
答案 0 :(得分:9)
在JB之前的Android版本中,你可以试试这个:
addIntent.putExtra("duplicate", false);
否则,您只需卸载并重新安装快捷方式:
intent.setAction("com.android.launcher.action.UNINSTALL_SHORTCUT");
getApplicationContext().sendBroadcast(intent);
intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
getApplicationContext().sendBroadcast(intent);
更多信息here。
答案 1 :(得分:0)
您可以在首选项管理器中存储标记,以标记您是否已创建快捷方式。这可以通过
来实现SharedPreferences prefs = mContext.getSharedPreferences("shortcut_created", 0);
SharedPreferences.Editor editor = prefs.edit();
if (prefs.getBoolean("shortcut_created", false))
{
// if shortcut has not been created, create your shortcut here
...
// once shortcut is created, mark the preference so the next time it does not
// create the shortcut again
editor.putBoolean("shortcut_created", true);
}
答案 2 :(得分:0)
是。您可以使用SharePreferences检查应用程序是否首次启动。更多信息请查看: