什么是Android应用程序快捷方式的速率限制?

时间:2017-01-03 09:23:05

标签: android android-7.1-nougat android-appshortcut

根据应用程序快捷方式的文档

  

速率限制   使用setDynamicShortcuts()时,addDynamicShortcuts()或   updateShortcuts()方法,请记住,您可能只能这样做   在后台应用程序中调用这些方法特定次数,a   当前没有活动或服务的应用程序。在一个   生产环境,您可以通过带来重置此速率限制   你的应用程序到了前台。

应用程序快捷方式的速率限制是什么?什么时候应该使用 isRateLimitingActive()

2 个答案:

答案 0 :(得分:3)

  1. 查看源代码,如果您没有任何剩余的调用留给isRateLimitingActive() API ShortcutManager方法似乎返回false(因此" 0&#34)。我想需要限速,因为API是资源密集型的。我可以想象,如果更新快捷方式,至少会发生以下情况:

    • 需要通知启动器应用程序(和其他侦听器)并开始更新它的UI或任何需要的东西(取决于启动器);
    • 系统需要store新的动态快捷方式信息;
  2. 您可以使用此方法查看对setDynamicShortcuts()addDynamicShortcuts()updateShortcuts()的调用是否会在尝试之前成功。

  3. <强> Source

    /**
     * Return {@code true} when rate-limiting is active for the caller application.
     *
     * <p>See the class level javadoc for details.
     *
     * @throws IllegalStateException when the user is locked.
     */
    public boolean isRateLimitingActive() {
        try {
            return mService.getRemainingCallCount(mContext.getPackageName(), injectMyUserId())
                    == 0;
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
        }
    }
    
      

    加成: setDynamicShortcuts()addDynamicShortcuts()updateShortcuts()如果由于速率限制而未成功,则返回false。

答案 1 :(得分:0)

建议的最大快捷方式数量为4,但最多可以发布5个。您可以阅读更多here