什么是安卓应用快捷方式的速率限制



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

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

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

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

    • 启动器应用程序(和其他侦听器)需要收到通知并开始更新其 UI 或任何需要的内容(取决于启动器);
    • 系统需要存储新的动态快捷信息;
  2. 您可以使用此方法来确定对setDynamicShortcuts()addDynamicShortcuts()updateShortcuts()的调用是否会成功,然后再尝试这样做。

源:

/**
 * 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。

建议的最大快捷方式数为 4,但最多可以发布 5 个。您可以在此处阅读更多内容。

最新更新