Как привязать эту службу к Android?

Это код в моем файле Activity. Инициируйте намерение, затем соединение, верно?

hello_service = new Intent(this, HelloService.class);
hello_service_conn = new HelloServiceConnection();
bindService( hello_service, hello_service_conn, Context.BIND_AUTO_CREATE);

Но мой вопрос: что происходит внутри Connection?

   class HelloServiceConnection implements ServiceConnection {
        public void onServiceConnected(ComponentName className,IBinder boundService ) {

        }
        public void onServiceDisconnected(ComponentName className) {

        }
    };

Может ли кто-нибудь сказать мне, какой код я вставил в onServiceConnected и onServiceDisconnected?

Мне просто нужно базовое соединение, чтобы мои Activity и Service могли общаться друг с другом.

Редактировать: я нашел хороший учебник, и я могу закрыть этот вопрос, если кто-то не хочет отвечать. http://www.androidcompetencycenter.com/2009/01/basics-of-android-part-iii-android-services/


person TIMEX    schedule 17.02.2010    source источник


Ответы (3)


Я хотел бы отметить, что если вы будете следовать примерам службы, предоставленным Google, тогда ваша служба будет терять память, посмотрите этот отличный пост о том, как это сделать правильно (и проголосуйте за связанную ошибку Google)

http://www.ozdroid.com/#!BLOG/2010/12/19/How_to_make_a_local_Service_and_bind_to_it_in_Android< /а>

person Chris.D    schedule 10.01.2011
comment
дай ссылку уже мертва - person ParikshitSinghTomar; 04.11.2014

Следует избегать привязки к службе из действия, так как это вызывает проблемы при изменении конфигураций действия (например, если устройство повернуто, действие будет создано снова с нуля, и привязку придется создавать заново).
Обратитесь к комментарию Commonsware к следующему сообщению о stackoverflow
Обмен данными с Activity from Service (LocalService) — рекомендации для Android

person Nikhil_Katre    schedule 17.03.2011

Чтобы подключить службу к активности, все, что вам нужно написать в реализации ServiceConnection, это:

@Override
public void onServiceDisconnected(ComponentName name) {
mServiceBound = false;
}

@Override
public void onServiceConnected(ComponentName name, IBinder service) {
MyBinder myBinder = (MyBinder) service;
mBoundService = myBinder.getService();
mServiceBound = true;
}

Здесь mBoundService — это объект вашего связанного сервиса. Взгляните на этот пример связанной службы.

person KnowIT    schedule 26.11.2014