У меня довольно простая локальная служба, которую я пытаюсь связать с моей деятельностью. Я проработал это вчера с CommonsWare, и он заставил меня выпрямиться, так как мне было трудно получить услугу для привязки. Оказывается, что причина, у меня было так много проблем было то, что я пытался связать службу с:bindService не работает внутри кнопки, но работает в onCreate - android
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()?
ТИА
@ chris324 - спасибо за ответ, но если вы посмотрите более тщательно, bindService() вызывается из метода void, который является частью класса активности, который вызывается из клика. Так что, во всяком случае, «это» будет относиться к деятельности, не так ли? – Kyle
Нет, не имеет значения, где определена функция. Он вызван из другого класса, и поэтому 'this' будет указывать на то, что – Falmarri
хорошо спасибо .... Я не знал этого: / – Kyle