AndroidDev 板


LINE

大家好,我的问题是 某程式( Service ),透过 bindService 去呼叫 另一个「不同 App」的 Service , 该如何做互动,情境如下: FloatWindow - 是一个 Service , 透过 WindowManager 建立了一个 浮动视窗。 MyService - 是要呼叫 FloatWindow 的「呼叫者」 , 透过 bindService ( FloatWindow 的 AndroidManifest.xml 有宣告 export=true ) 想先请问第一个问题是, MyService 可以存取 FloatWindow 的 public member 吧? 我有没有办法反过来, FloatWindow 去存取 MyService 的成员呢? 第二个问题比较复杂.... 根据网路上所述, FloatWindow 时做一个 LocalBinder , 提供一个方法 return FloatWindow 这个 Service。 我的目的是在 MyService 里面有宣告一个 Listener , 想透过 Binder 把 Listener 传过去给 Service,这样当我这个 FloatWindow 视窗上的 东西被按下时,能够呼叫到这个 Listener 执行事件。 public class FloatWindow extends Service{ private IBinder mBinder=new LocalBinder(); private MyListener listener; public IBinder onBind(Intent intent){ return mBinder; } public class LocalBinder extend Binder{ public FloatWindow getService(){ return FloatWindow.this; } } public void setListener(MyListener l){ listener=l; } } 而在 MyService 透过 bindService 呼叫: Intent intent=new Intent(); intent.setComponent(/*有写好,先略*/); bindService(intent,svrCon, Service.BIND_AUTO_CREATE); 而 svrCon 是这个的 instance: public class SvrCon implements ServiceConnection { @Override public void onServiceConnected(ComponentName name, IBinder service) { FloatWindow f=((FloatWindow.LocalBinder)service).getService(); f.setListener( listener_instance ); } @Override public void onServiceDisconnected(ComponentName name) { } } 上面这个是我研究出来的方式,应该是这样用吧。 只是我现在状况更加复杂,就是这两个 Service 是在不同 Process 中, 根据网路上的说明,要用到 AIDL,这部分是否有人有研究呢? 我试着写了一下,注意到这样建立出来的 FloatWindow 实体不同, 使用类似这种 listener 的方式无法达到目的。 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 122.254.16.222
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/AndroidDev/M.1447175231.A.AAC.html
1F:推 givemepass: http://www.slideshare.net/rickwu12/ss-54297655 11/11 13:30
2F:推 givemepass: 第一个bindService可以利用Binder双向沟通 11/11 13:44
3F:→ givemepass: 第二个AIDL你也可以实做看看 蛮简单的 11/11 13:44
4F:推 charlesdc: 不同app的process可以设定成相同的,也可以相互分享资 11/11 21:13
5F:→ charlesdc: 料 11/11 21:13
6F:→ toosakarin: AIDL可以做到跨process callback没问题 11/13 00:51







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:iOS站内搜寻

TOP