2017-01-03 8 views
1

Согласно документации для приложения ярлыковЧто такое ограничение скорости для ярлыков приложений для Android?

ограничение скорости При использовании setDynamicShortcuts(), addDynamicShortcuts(), или updateShortcuts() методы, имейте в виду, что вы могли бы быть только в состоянии вызова этих методов определенное количество раз в фоновом приложении, приложение без каких-либо действий или служб, находящихся в настоящее время на переднем плане. В производственной среде вы можете сбросить эту скорость, добавив ваше приложение на передний план.

Что такое ограничение скорости, связанное с ярлыками приложений? когда isRateLimitingActive() следует использовать?

ответ

3
  1. Глядя на исходный код, кажется, что метод isRateLimitingActive() возвращает ложь, если у вас нет каких-либо оставшихся вызовов, оставшихся в ShortcutManager API (отсюда «0»). Я предполагаю, что ограничение скорости необходимо, потому что API является ресурсоемким. Я могу себе представить, что по крайней мере, следующее произойдет, если вы обновляете ярлык:

    • пусковой установки приложения (и других слушателей) должен быть извещен об этом и начинает обновлять это интерфейс или все, что необходимо (в зависимости от пусковой установки);
    • Системе требуется store новая динамическая информация о ярлыке;
  2. Вы можете использовать этот метод, чтобы выяснить, если вызов setDynamicShortcuts(), addDynamicShortcuts() или updateShortcuts() удастся, прежде чем даже пытаться сделать это.

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() возвращение ложным, если они не увенчались успехом из-за ограничение скорости.

+0

хорошего объяснения !!! –