0

サービスにバインドするアクティビティがあります。このサービスは、XMPP サーバーとやり取りするための機能を提供します。

次に、アクティビティは、同じサービスにアクセスする必要がある 2 番目のアクティビティを起動します (たとえば、音声通話を開始するため)。

2 番目のアクティビティを同じサービスに再度バインドすることを考えていましたが、2 番目のアクティビティが開始されたときにサービスが既に存在し、最初のアクティビティが故意にサービスを破棄するまでそこに存在する必要があるため、やり過ぎのように思えます (再度バインドすることは、サービスを使用する前に、新しい接続とバインドが非同期的に発生するのを待機します)。

現時点では、startActivityForResult() を使用して 2 番目のアクティビティを起動し、結果を待って最初のアクティビティからサービスにアクセスしていますが、ロジックを変更したいと考えています (2 番目のアクティビティはサービスとやり取りする必要があり、次に最初のアクティビティは、サービスからシグナルが返されたときに 2 番目のアクティビティを閉じます)。

サービス オブジェクトを 2 番目のアクティビティに渡す方法について何か提案はありますか?

4

2 に答える 2

1

2 つのアクティビティを同じサービスにバインドするのはやり過ぎではありません。それは実際にあなたがやろうとしていることを私が理解していることを行う適切な方法です.2つの異なるアクティビティからサービスによって提供されるxmpp関数にアクセスします.

2 番目のアクティビティをバインドすると、サービスは既に開始されているため、再度開始することはありません。最初のアクティビティと同じサービスに接続します。

もちろん、シングルトンや Application クラスなど、すべてのバインディングを 1 つの場所に配置することもできます。

于 2012-09-21T14:10:41.093 に答える
0

それへの参照をアプリケーションに保存し、2 番目のアクティビティからアクセスできます。

于 2012-09-21T14:02:54.887 に答える