2

我的应用程序可以选择创建主屏幕快捷方式。

我创建这样的快捷方式:

Intent intent = new Intent();
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT,
new Intent(ShortcutCreateActivity.this, ShortcutCreateActivity.class).putExtra(EXTRA_PROFILE_ID, profileId).putExtra(EXTRA_PROFILE_ACTION, item));
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, profileTitle);
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON, bitmap);

这按预期工作......当用户单击快捷方式时,将启动 ShortcutCreateActivity 并且我会做我需要的事情。

然而!我想避免打开活动的需要。相反,我想创建一个发送广播的快捷方式。

我尝试将意图替换为:

intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT,
    new Intent(INTENT_ACTION_THAT_I_WANT)

但是当我单击快捷方式时,它会显示一个 Toast“未安装应用程序”。

是否可以创建发送广播而不是启动活动的主屏幕快捷方式?

(开始活动并快速完成它不是一种选择)。

谢谢!

4

1 回答 1

6

是否可以创建发送广播而不是启动活动的主屏幕快捷方式?

严格来说,没有。

但是,您可以让它指向一个使用 设置的活动,Theme.NoDisplay在该活动中,您可以在不调用的情况下onCreate()发送广播和finish()调用setContentView()。从视觉上看,这与让快捷方式发送广播本身没有区别。

于 2013-04-21T18:33:42.933 回答