2015-10-23 87 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 

} 

}