我有一个非常简单的本地服务,我正在尝试绑定到我的活动。昨天我与 CommonsWare 一起解决了这个问题,他让我理顺了,因为我很难让服务绑定。事实证明,我遇到这么多麻烦的原因是我试图将服务绑定到:
bindService(new Intent(this, myService.class), mConnection, Context.BIND_AUTO_CREATE);
在单击按钮后调用的 void 方法内。
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