6

Web サービスの呼び出しをキューに入れる IntentService があります。実行する Web サービス呼び出しのタイプを定義する各 Intent で整数を Extra として渡します。

特定の Web サービスを実行するための Intent が IntentService に渡され、同じ Web サービスの Intent が IntentService キューに既に存在する場合、Intent が処理されない状況を作成したいと考えています。理想的には Intent を破棄しますが、Extra を追加して、処理後に Intent をスキップすることをコードに知らせることもできます。インテントが入ってくると、IntentService に追加したオブジェクトのキューにどれが入っているかを追跡できます。

ただし、IntentService に渡されたときに Intent をインターセプトする場所がわかりません。私が知る限り、 onHandleIntent が呼び出されたときにしか触れることができず、それでは遅すぎます。

何か案は?

4

1 に答える 1

5

厳密にはお勧めできませんが、次のような方法をお勧めします。

public int onStartCommand (Intent intent, int flags, int startId)
{
  // do your intent modification here
  //if(intentIsDuplicate(intent))

  // make sure you call the super class to ensure everything performs as expected
  return super.onStartCommand(intent, flags, startId);
}

それがうまくいくかどうか教えてください。

于 2011-09-11T23:26:44.913 に答える