看着似乎isRateLimitingActive()
方法,如果你沒有留給ShortcutManager
API (因此「0」)任何剩餘的調用返回false的源代碼。我想速度限制是需要的,因爲API是資源密集型的。我可以想像,至少如果你更新的快捷方式將發生以下情況:
- 的桌面應用(和其他聽衆)需要通知並開始更新它的UI或任何需要(取決於發射器);
- 系統需要store新的動態快捷的信息;
您可以使用此方法,以找出是否到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,如果他們沒有成功,由於速率限制。
很好的解釋! –