2015-10-23 91 views
0

我有了一个服务类:等待活动?

private ServiceConnection conn = new ServiceConnection() { 
    @Override 
    public void onServiceConnected(ComponentName name, IBinder service) { 
     service = ((MyService.LocalBinder)service).getService(); 
     isBound = true; 
    } 

    @Override 
    public void onServiceDisconnected(ComponentName name) { 
     service = null; 
     isBound = false; 
    } 
}; 

我也有这样的方法:

public boolean isBound() { 
    return isBound; 
} 

在我的活动我创建类的实例。但是,该服务不会立即连接。

在活动中,如何等待isBound()返回true而不阻止活动?

+1

这种结构的想法是什么?为什么不直接将活动绑定到服务? –

回答

0

恐怕你不行。顺便说一句,你也可以通知世界您的服务已正确与BroadcastReceiver

-1

在服务类广播方式发送连接:

Intent intent=new Intent(); 
intent.setAction("com.intent.service.connected"); 
sendBroadcast(intent); 

在你的活动赶上意图:

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState);  
    IntentFilter filter = new IntentFilter("com.intent.service.connected"); 
    this.registerReceiver(new Receiver(), filter); 
} 


private class Receiver extends BroadcastReceiver { 

@Override 
public void onReceive(Context arg0, Intent arg1) { 

    // your codes 

} 

}