3

ローカルサービスに接続するアクティビティが必要なプロジェクトで作業していて、そのサービスが実行中の場合は起動し、実行されていない場合は起動します。 このようなアプローチに適したフラグは何ですか?存在する場合はサービスにバインド

+2

笑この質問の編集は、その意味を完全に逆転させた。 GJ人。 – Jens

答えて

5

これは、たとえば、最後のパラメータの0#bindService(Intent, ServiceConnection, int)に渡すことによって簡単に実行されます。

など。

bindService(new Intent(this, MrMeService.class), new ServiceConnection(){ 
     public void onServiceDisconnected(ComponentName name) { 
      System.out.println("Service disconnected"); 
     } 
     public void onServiceConnected(ComponentName name, IBinder service) { 
      System.out.println("Service connected"); 
     } 
    }, 0); 

#bindService(..)コールはtrueを返しますが、サービスはない実際に開始され、誰かが実際にサービスを開始するまで、あなたのサービスの接続は、例えば、をトリガしません。 #startService(Intent)を使用してください。少なくともこれはICSとジンジャーブレッドで動作する方法です。

+0

フラグリストに0がありませんでした。 –

+0

これは素晴らしい答えです。多くの場合、bindService()メソッドによって返されたブール値の格納が示唆されています。これは正しいです。注:unbindService()は、サービスからバインド解除されても、onServiceDisconnected()を呼び出すことはありません。 推奨:onResume() - > bind()、onPause() - > unbind()、onEventToStart() - > start()、onEventToStop() - > stop()です。 私はそれをテストしたすべてのデバイスで作業しています。 – Armando

関連する問題