У меня довольно простой локальный сервис, который я пытаюсь привязать к своей деятельности.Я работал через это вчера с CommonsWare, и он выправил меня, так как мне было трудно получить привязку сервиса.Оказывается, причина, по которой у меня было так много проблем, заключалась в том, что я пытался связать сервис с:
bindService(new Intent(this, myService.class), mConnection, Context.BIND_AUTO_CREATE);
внутри пустого метода, который вызывался после нажатия кнопки.
private void doBindService() {
bindService(new Intent(this, SimpleService.class), mConnection, Context.BIND_AUTO_CREATE);
mIsBound = true;
}
private OnClickListener startListener = new OnClickListener() {
public void onClick(View v){
doBindService();
}
};
когда я переместил свой вызов bindService () в метод onCreate действия, он работает нормально.CommonsWare упомянул кое-что о том, что этот вызов асинхронный, и я недостаточно знаю о создании активности Android, чтобы понять, была ли это моя проблема или нет.Я действительно знаю, что мой onServiceConnection () вызывался внутри моего ServiceConnection () при нажатии кнопки, мой mBoundService не работал, когда я пытался получить доступ к членам внутри сервиса.
Может кто-нибудь сказать мне, почему этоне работает внутри нажатия кнопки, но работает внутри onCreate ()?
TIA