2017-01-03 108 views
1
アプリのショートカットのドキュメントを1として

アンドロイドアプリのショートカットのレート制限とは何ですか?

setDynamicShortcutsを使用する場合は レート制限()、addDynamicShortcuts()、または updateShortcuts()メソッド、あなただけ コールこれらのことができるかもしれないことに留意してくださいメソッドをバックグラウンドアプリで特定回数実行すると、現在はフォアグラウンドに含まれているアクティビティやサービスがない アプリになります。 プロダクション環境では、このレート制限をリセットして、 アプリをフォアグラウンドにすることができます。

アプリのショートカットに関係するレート制限は何ですか? isRateLimitingActive()を使用する必要がありますか?

答えて

3
  1. あなたがShortcutManager API (したがって、「0」)に残った残りのコールを持っていない場合isRateLimitingActive()メソッドが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を返します。

+0

素敵な説明!!! –