我只想知道我是否可以从另一个服务绑定一个服务。例如,目前我有一个启动service B的activity A,现在我只想让service B绑定并启动另一个service C。有人知道该怎么做吗?这意味着我可以使用activity A的相同方法在一个服务上启动一个服务来启动另一个服务吗?
发布于 2012-01-19 04:26:29
这对我很有效。如果我从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();
} https://stackoverflow.com/questions/6488445
复制相似问题