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

} 

} 
Смежные вопросы