3

サービスの開始に使用されるインテントに追加された を使用して、リクエストに (つまり、アクティビティから) 結果を返す(IntentService実際にはWakefulIntentService !) があります。以前に使用しましたが、リクエストの処理中にデバイスがスリープ状態になったり回転したりするとクラッシュすることがわかりました。PendingIntentResultReceiver

このサービスの単体テストとして、ServiceTestCase<Service>クラスを使用しています。ResultReceiverサービスに渡されたインテントに追加できるため、使用時に問題なく機能しました。ただし、 Activity のメソッドServiceTestCaseは含まれません。createPendingResult

したがって、このサービスをテストするための最良のアプローチは何だろうと思います。ActivityUnitTestCase単体テストにActivityInstrumentationTestCase2 を使用する必要がありますか? または、より良いアイデアはありますか?

ところで、私は Android Dev を読みました。サービスに関するガイドの章は次のとおりです。

「しかし、サービスが結果を送り返すようにしたい場合、サービスを開始するクライアントはブロードキャスト用の PendingIntent を (getBroadcast() を使用して) 作成し、それをサービスを開始するインテントでサービスに配信できます。サービスは、その後、ブロードキャストを使用して結果を配信できます。」

アクティビティにローカルなブロードキャストを使用するIntentServiceことは、私にはやり過ぎに思えますが、それについて他の人の意見を聞くことができれば幸いです。

4

0 に答える 0