我只想知道我可以绑定另一个服务的服务。例如,目前我有一个activity A
开始service B
,现在我只想service B
绑定并启动另一个service C
。那么有人知道如何做到这一点?这意味着我可以使用相同的方法activity A
启动服务上的服务以启动另一项服务?一个服务可以绑定另一个服务
10
A
回答
21
您可以从服务中调用bindService
,方法与您可以从活动中调用它的方式完全相同。你会从javadoc注意到唯一你不能拨打bindService
的地方是BroadcastReceiver
。您也可以使用ServiceConnection
以获得Binder
。
2
这适用于我。如果我从onCreate
拨打bindService
,那么onServiceConnected
正在与第一个电话onHandleIntent
竞争,因此如果过早到达,请重新提交意图。我的代码大致是这样的。
class MyService extends IntentService implements ServiceConnection {
IMyOtherService iService;
@Override
void onCreate() {
bindService(intent);
}
@Override
void onServiceConnected(ComponentName name, IBinder service) {
iService = IMyService.Stub.asInterface(service);
}
@Override
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) { }
startService(intent);
}
iService->method1();
}
+1
您可以改为使用服务。 – Ishaan
相关问题
- 1. Windows服务可以安装另一个Windows服务吗?
- 2. 是否可以将数据从一个服务发送到另一个服务?
- 3. Web服务可以在同一个应用程序服务器中调用另一个Web服务吗?
- 4. 在另一个服务角度注入一个服务js
- 5. Angular2:如何注入一个服务到另一个服务
- 6. 从Android的另一个服务调用一个服务
- 7. ServiceConstructionException当一个Web服务连接到另一个Web服务
- 8. Android从另一个意向服务开始一个新的Intent服务以及当一个服务完成时如何提供服务可以接受吗?
- 9. CountDownTimer不绑定到一个服务
- 10. WCF服务返回另一个服务(服务工厂?)
- 11. 正在以角度调用服务到另一个服务中
- 12. 是否可以将域绑定到另一个域而不是服务器ip?
- 13. gRPC服务器可以基于另一个HTTP/2 web服务器,如jetty吗?
- 14. 服务可以在其代码中调用另一个服务吗?
- 15. 洋葱建筑 - 可以模型服务引用另一个模型服务?
- 16. Symfony2 - LswMemcacheBundle - 我可以在另一个服务中使用memecache.default服务吗?
- 17. 是否可以在另一个服务中注入服务,反之亦然?
- 18. 在SOA架构中从另一个服务调用服务可以吗?
- 19. 是否可以从另一台服务器“中继”WCF服务?
- 20. ASP.NET MVC - 一个业务服务需要调用另一个服务
- 21. WCF一个服务或多个服务
- 22. 一个服务或多个服务
- 23. 我可以将一个http请求从一个node.js或python服务器转发到另一台服务器吗?
- 24. 如何绑定服务,如果它在另一个进程?
- 25. Robolectric不会绑定另一个线程的服务
- 26. 绑定到另一个应用的服务
- 27. Android - 从另一个服务以固定时间间隔调用系统服务
- 28. javafx后台任务:在另一个服务中调用服务
- 29. android:如何将一个子类绑定到一个服务
- 30. 是否可以将一个解决方案绑定到多个TFS服务器?
你能指导我一个教程,可以帮助我开始在Android的互联网服务通信开始...问候 –
这是一个好习惯吗?如果最初的'Service'叫做'startForeground',第二个'Service'也会在后台运行? – StuStirling