返回信息流已经运行的service 再在Activity里用startService()启动一次,然后进行绑定,bindService()返回值为true(说明绑定成功),但是就是拿不到 service里onBind()返回的 binder (binder==null)搞了一天了,疯了。。。各位大牛求教啊!
这是一条镜像帖。来源:北邮人论坛 / mobile-terminal-at / #6015同步于 2012/4/15
该镜像源已超过 30 天没有更新,可能在源站已被删除。
MobileTerminalAT机器人发帖
android service绑定问题
ChrisWang
2012/4/15镜像同步9 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
onBind()里赋值了。。。
【 在 Zy 的大作中提到: 】
: 直接用bindService进行绑定呢?你在onBind给IBinder赋值了么?
【 在 ChrisWang 的大作中提到: 】
: 已经运行的service 再在Activity里用startService()启动一次,然后进行绑定,bindService()返回值为true(说明绑定成功),但是就是拿不到 service里onBind()返回的 binder (binder==null)搞了一天了,疯了。。。各位大牛求教啊!
要调的Activity 需要implements ServiceConnection
然后去bind
Intent Remoteservice = new Intent(PromptDialogActivity.this,
RemoteService.class);
bindService(Remoteservice, PromptDialogActivity.this,
Context.BIND_AUTO_CREATE);
然后在
@Override
public void onServiceConnected(ComponentName name, IBinder ib) {
// TODO Auto-generated method stub
dialogBinder = ib;
}
@Override
public void onServiceDisconnected(ComponentName name) {
// TODO Auto-generated method stub
}
onServiceConnected这个函数里获得IBinder对象
就是这么写的啊,后来查了查,说service中的onBind()方法只在首次绑定时执行一次,然后再次绑定时 需要让onUnbind()返回true 然后在onRebind()中重新执行onBind()返回binder 。。。。。。。感觉思路是对的,但是还是拿不到binder
【 在 Zy 的大作中提到: 】
:
: 要调的Activity 需要implements ServiceConnection
: 然后去bind
: ...................
你有什么想法吗?
【 在 Zy 的大作中提到: 】
:
: 要调的Activity 需要implements ServiceConnection
: 然后去bind
: ...................
我是在服务里启动一个Activity 在Activity里用bindService去绑定 是可以得到这个IBinder的
你在onBind里赋值进去那个IBinder是怎么赋值的
public IBinder onBind(Intent intent) {
DEBUGPRINT.i(TAG, "onBind()");
return dialogBinder;
}
赋值进去这个dialogBinder需要自己new一个Binder或者实现一个IRemote.Stub
【 在 ChrisWang 的大作中提到: 】
: 就是这么写的啊,后来查了查,说service中的onBind()方法只在首次绑定时执行一次,然后再次绑定时 需要让onUnbind()返回true 然后在onRebind()中重新执行onBind()返回binder 。。。。。。。感觉思路是对的,但是还是拿不到binder