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 (), позвоните в метод деятельности Onreate, он работает нормально. Согласие упомянуло что-то о том, что звонок является асинхронным, и я не знаю достаточно о создании активности Android, чтобы знать, если это то, что была моя проблема или нет. Я знаю, что мой onserviceConnection () вызывается внутри моего обслуживания (), когда кнопка нажала, на моем MBoundservice не будет работать, когда я попробовал доступ к участникам внутри сервиса.
Может кто-нибудь сказать мне, почему он не работает внутри кнопки, но работает внутри OnCreate ()?
TIA
Решение
То this
Ссылка внутри doBindService
не то же самое в обоих случаях. Если это позвонит onCreate
Это будет ссылка на Activity
Если вызывается из кнопки, нажмите, это будет ссылка на OnClickListener
. Отказ Очевидно, вы не хотите, чтобы ваша служба привязана к кнопкам, кликом прослушивателя.
Попробуйте изменять this
к YOURACTIVITYNAME.this
и посмотреть, если это поможет.