6

サービスと通信するアクティビティ、またはサービスと通信する別のサービスがある場合、どの「通信プロトコル」がバインディング パーティにメッセージを配信するのに高速ですか?

サービスとの間で送受信されるメッセージは、すべて文字列またはパーセル可能なオブジェクトです。

別のサービスまたはアクティビティに大量のデータを送信する場合、どの方法がより高速かを判断するのに苦労しています。メッセンジャーによって送信されたインテントまたはメッセージの処理速度に関する詳細を見つけることができません。

誰でもこれを経験していますか?

4

2 に答える 2

5

Intent の場合、IntentResolverは受信者のリストを検索するため、適切なターゲットを見つけるのに時間がかかりました。この場合のパフォーマンスは、システムとレシーバーの数によって異なります。適切なレシーバーを見つけるために IntentResolver を検索する必要があります。

一方、Handlerを介してMessageを送信すると、同じスレッドの Message Queue が使用され、その場合のパフォーマンスはその Queue で利用可能なメッセージに依存します。

したがって、メッセージはインテントまたは少なくとも理論的には高速になるようですが、いつでも短いプログラムを記述して出力を確認できます。

ただし、サービスからアクティビティに送信するデータが大量にある場合は、データを永続ストアに書き込み、データの準備ができたことをアクティビティに通知するという別の代替ソリューションを考えることができます。通知を受信すると、アクティビティはデータ ソースからデータを読み取ります。このようにして、ユーザーが電話を受けたり、途中で中断したりしても、データは安全です。

于 2013-09-27T23:03:06.227 に答える