2017-01-03 2 views
1

Per Dokumentation für App-VerknüpfungenWas ist die Geschwindigkeitsbegrenzung für Android-App-Verknüpfungen?

Rate Limiting Wenn die setDynamicShortcuts() verwendet, addDynamicShortcuts() oder updateShortcuts() Methoden, bedenken Sie, dass Sie nur Anruf sein könnte in der Lage diese Methoden eine bestimmte Anzahl von Malen in einer Hintergrund App, eine App ohne Aktivitäten oder Dienste derzeit im Vordergrund. In einer Produktionsumgebung von können Sie diese Ratenbegrenzung zurücksetzen, indem Sie die App in den Vordergrund bringen.

Was ist die Begrenzung der Rate in Bezug auf App-Verknüpfungen? Wenn isRateLimitingActive() sollte verwendet werden?

Antwort

3
  1. auf den Quellcode der Suche scheint es, dass die isRateLimitingActive() Methode gibt false zurück, wenn Sie alle verbleibenden Anrufe an die ShortcutManagerAPI links nicht haben (daher der „0“). Ich denke, dass eine Ratenbegrenzung erforderlich ist, da die API ressourcenintensiv ist. Ich kann, dass die folgenden zumindest vorstellen wird passieren, wenn Sie eine Verknüpfung aktualisieren:

    • Der Launcher-App (und andere Hörer) muss benachrichtigt werden, und startet die Aktualisierung es UI oder was auch immer nötig ist (abhängig von der Trägerrakete);
    • Das System muss store die neue dynamische Verknüpfung Informationen;
  2. könnten Sie diese Methode verwenden, um herauszufinden, ob ein Aufruf an setDynamicShortcuts(), addDynamicShortcuts() oder updateShortcuts() bevor auch nur zu versuchen gelingen wird, dies zu tun.

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(); 
    } 
} 

Bonus:setDynamicShortcuts(), addDynamicShortcuts() oder updateShortcuts() return false, wenn sie nicht auf Grund erfolgreich war Limiting zu bewerten. Für weitere Einzelheiten zu 5. veröffentlichen bis

+0

schöne Erklärung !!! –

Verwandte Themen