2

所以,基本上我想要实现的是:了解我何时通过快捷方式访问活动,何时不访问。我正在使用静态快捷方式。

浏览了文档,但没有运气。也许它更多地与意图有关,这是我不掌握的 Android 编程的一部分。

谢谢。

4

3 回答 3

3

您可以将 android:action="android.intent.action.VIEW" 意图添加到每个快捷方式:

<intent
   <extra
         android:name="key"
         android:value="value" />
</intent>

然后在您的活动中像这样检查它:

Intent intentaction = getIntent();


if (intentaction.hasExtra("key")) {

        //Do something 
    }
于 2017-01-06T02:12:12.963 回答
3

使用应用快捷方式独有的操作字符串。请注意,操作字符串不需要在<intent-filter>清单<activity>中 -<activity>根本不需要<intent-filter>AFAIK。

无论如何,您必须在应用程序快捷方式的元素中有一个android:action属性<intent>(出于莫名其妙的原因)。因此,将其设置为某个字符串。然后,在您的活动中,您可以使用getIntent()查看Intent用于创建活动的内容并查看它是否具有此特定操作字符串。如果是这样,那么该活动是通过应用程序快捷方式创建的。

于 2016-12-09T19:03:07.487 回答
0

官方文档应该给你一些提示,虽然它没有直接回答你的问题。 https://developer.android.com/guide/topics/ui/shortcuts.html#tracking-usage

另一种简单的方法是在处理动态快捷方式时,您可以在意图中添加某种标志并在目标活动中检查该标志,然后您可以确定该活动是从快捷方式调用的。

希望能帮助到你...

于 2016-12-15T16:30:14.923 回答