2011-10-30 33 views
0

私のAndroidアプリケーションでは、さまざまなアクティビティから私のサービスの異なるインスタンスを起動します。 たとえば、アクティビティAから、サービスを開始したい、アクティビティBから同じサービスの別のインスタンスを起動したいとします。私はこれらのコード行を使用してい貴様の活動から別のアクティビティから別のサービスインスタンスを起動する方法

活動A

svc = new Intent(AActivity.this, Service.class); 
svc.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
startService(svc); 
     ` 

アクティビティB

svc = new Intent(BActivity.this, Service.class); 
svc.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
startService(svc); 

問題が一つだけのサービスが作成されthathです。 解決策がありますか? ありがとうございます。

+2

同じサービスの異なるインスタンスが必要な理由を詳しく説明できますか。 ただ1つのサービスインスタンスを使用して、異なるアクティビティからバインドするのはなぜですか? – Darwind

答えて

0

たとえば、アクティビティAからは、サービスを開始し、アクティビティBからは同じサービスの別のインスタンスを起動します。

これはできません。申し訳ありません。

0

私もこれを検討していましたが、掘り起こした後、私は同じ結論に達しました。同じサービスの複数のインスタンスを実行することはできません。

これは、Androidのdevのフォーラムからの引用です:

サービスはシングルトンです。 bindService()でstopService()を使用しないでください。 サービスは、1つ以上のクライアントが存在する限りインスタンス化されたままです。または、開始>状態で明示的に です。

ダイアンHackborn、 Androidのフレームワークエンジニアのための悪いニュース

申し訳ありません。

乾杯

関連する問題