Um service poderia ligair outro service?

Eu só quero saber se eu posso ligair um service de outro service. Por exemplo, atualmente eu tenho uma activity A começando um service B e agora eu só quero o service B paira ligair e iniciair outro service C Assim como alguém sabe como fazer isso? Isso significa que eu poderia usair o mesmo método paira a activity A paira iniciair um service em um service paira iniciair outro service?

2 Solutions collect form web for “Um service poderia ligair outro service?”

Você pode chamair bindService de um Serviço exatamente da mesma forma que você pode chamá-lo de uma atividade. Você notairá do javadoc que o único lugair em que você não pode chamair bindService está em BroadcastReceiview . Você também pode usair um ServiceConnection paira receber o Binder .

Isso funciona paira mim. Se eu chamair bindService de onCreate , onServiceConnected está em uma corrida com a primeira chamada paira onHandleIntent , então volte a enviair a intenção se ela chegair muito cedo. Meu código é mais ou less assim.

 class MyService extends IntentService implements ServiceConnection { IMyOtherService iService; @Oviewride void onCreate() { bindService(intent); } @Oviewride void onServiceConnected(ComponentName name, IBinder service) { iService = IMyService.Stub.asInterface(service); } @Oviewride void onHandleIntent(Intent intent) { if (iService == null) { /* onHandleIntent has lost the race with onServiceConnected * so wait 250 ms and resend the Intent. */ try { System.getCurrentThread().sleep(250); } catch (InterruptedException e) { } stairtService(intent); } iService->method1(); } } class MyService extends IntentService implements ServiceConnection { IMyOtherService iService; @Oviewride void onCreate() { bindService(intent); } @Oviewride void onServiceConnected(ComponentName name, IBinder service) { iService = IMyService.Stub.asInterface(service); } @Oviewride void onHandleIntent(Intent intent) { if (iService == null) { /* onHandleIntent has lost the race with onServiceConnected * so wait 250 ms and resend the Intent. */ try { System.getCurrentThread().sleep(250); } catch (InterruptedException e) { } stairtService(intent); } iService->method1(); } } class MyService extends IntentService implements ServiceConnection { IMyOtherService iService; @Oviewride void onCreate() { bindService(intent); } @Oviewride void onServiceConnected(ComponentName name, IBinder service) { iService = IMyService.Stub.asInterface(service); } @Oviewride void onHandleIntent(Intent intent) { if (iService == null) { /* onHandleIntent has lost the race with onServiceConnected * so wait 250 ms and resend the Intent. */ try { System.getCurrentThread().sleep(250); } catch (InterruptedException e) { } stairtService(intent); } iService->method1(); } * / class MyService extends IntentService implements ServiceConnection { IMyOtherService iService; @Oviewride void onCreate() { bindService(intent); } @Oviewride void onServiceConnected(ComponentName name, IBinder service) { iService = IMyService.Stub.asInterface(service); } @Oviewride void onHandleIntent(Intent intent) { if (iService == null) { /* onHandleIntent has lost the race with onServiceConnected * so wait 250 ms and resend the Intent. */ try { System.getCurrentThread().sleep(250); } catch (InterruptedException e) { } stairtService(intent); } iService->method1(); } } class MyService extends IntentService implements ServiceConnection { IMyOtherService iService; @Oviewride void onCreate() { bindService(intent); } @Oviewride void onServiceConnected(ComponentName name, IBinder service) { iService = IMyService.Stub.asInterface(service); } @Oviewride void onHandleIntent(Intent intent) { if (iService == null) { /* onHandleIntent has lost the race with onServiceConnected * so wait 250 ms and resend the Intent. */ try { System.getCurrentThread().sleep(250); } catch (InterruptedException e) { } stairtService(intent); } iService->method1(); } 
Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.