2017-01-03 47 views
1

中爲每個應用程序文件的快捷方式什麼是Android應用程序快捷方式的速率限制?

限速 當使用setDynamicShortcuts(),addDynamicShortcuts(),或 updateShortcuts()方法時,請記住,你可能只能夠 調用這些方法在後臺的應用程序特定的次數,一個 應用程序與當前在前臺沒有任何活動或服務。在 生產環境中,您可以重置這個速度通過將 您的應用推到前臺限制。

什麼是速率限制的關注與應用的快捷方式?當isRateLimitingActive()應該使用?

回答

3
  1. 看着似乎isRateLimitingActive()方法,如果你沒有留給ShortcutManager API (因此「0」)任何剩餘的調用返回false的源代碼。我想速度限制是需要的,因爲API是資源密集型的。我可以想像,至少如果你更新的快捷方式將發生以下情況:

    • 的桌面應用(和其他聽衆)需要通知並開始更新它的UI或任何需要(取決於發射器);
    • 系統需要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()返回false,如果他們沒有成功,由於速率限制。

+0

很好的解釋! –

相關問題