Что такое ограничение скорости для ярлыков приложений Android?
Согласно документации для ярлыков приложений
Ограничение скорости При использовании методов setDynamicShortcuts(), addDynamicShortcuts() или updateShortcuts() имейте в виду, что эти методы можно вызывать только определенное количество раз в фоновом приложении, приложении без действий или служб в настоящее время. на переднем плане. В производственной среде вы можете сбросить это ограничение скорости, выведя свое приложение на передний план.
Что такое ограничение скорости в связи с ярлыками приложений? когда следует использовать isRateLimitingActive()?
2 ответа
Глядя на исходный код, кажется, что
isRateLimitingActive()
Метод возвращает false, если у вас нет оставшихся вызововShortcutManager
API (отсюда и "0"). Я предполагаю, что ограничение скорости необходимо, потому что API является ресурсоемким. Я могу представить, что, по крайней мере, произойдет следующее, если вы обновите ярлык:- Приложение запуска (и другие слушатели) должно быть уведомлено и начинает обновлять свой пользовательский интерфейс или все, что нужно (зависит от запуска);
- Система должна хранить новую динамическую информацию о ярлыках;
Вы можете использовать этот метод, чтобы узнать, если вызов
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. Вы можете прочитать больше здесь.