作者darkk6 (Mr. Pan)
看板AndroidDev
标题Re: [问题] Service 与呼叫者的互动
时间Fri Nov 13 08:00:09 2015
1F:推 givemepass: 不太懂 是指你无法动remote的code吗?11/12 14:01
稍微解释一下我想做的事情好了,首先有两个 App:
Caller -----> 某 IME 的 InputMethodService
MySvr -----> 我制作的 Service , 会产生浮动视窗
先透过 Xposed 来 hook Caller 键盘跳出的事件,也就是当键盘跳出後
透过 bindService 启动 MySvr , 这样一来 MySvr 的浮动视窗就会出现
但我想在想要点选这个浮动式窗上的按钮後,由 Caller 显示一个 Dailog,
(因为之後要取得 InputMethodService 中的 InputConnection )
所以我的想法是:
1. MySvr 加入
public void setListener(MyListener l){
this.listener = l;
}
2. 设定当浮动视窗的按钮被按下时,判断:
if( listener!=null ) listener.onWindowClick();
3. 传入 bindService 的 ServiceConnection 实作 MyListener,
当 onServiceConnected 时,透过 IBinder 取得 MySvr,
接着透过 setListener 把自己传过去:
MySvr m=MyBinder.Stub.asInterface(iBinder);
m.setListsner(this);
大概就像这样,不知道该怎麽做会比较OK ?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 210.60.161.234
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/AndroidDev/M.1447372812.A.296.html
2F:→ ssccg: 你的MyListener一样用aidl定义就可以 11/13 09:34
3F:→ ssccg: 总之会跨process传的物件Type就用aidl 11/13 09:37