当前位置: 网学 > 编程文档 > Android > 正文

使用android中的AIDL让Service与Activity通信

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/19
下载{$ArticleTitle}原创论文样式

 这几天搞了搞AIDL,终于弄明白了在AIDL中让Service调用Activity的方法

代码:首先建立一个ICallback.aidl文件,作为Activity中的回调方法 package com.zhang.test.service; interface ICallback {void showResult(int result);} 然后再建立一个IService.aidl用来在Activity中接收Service回调,以及在Service中onBind时返回的Binder注意:aidl中import不能写com.xxx.*,要写全类的路径 package com.zhang.test.service; import com.zhang.test.service.ICallback; interface IService {void registerCallback(ICallback cb);void unregisterCallback(ICallback cb);} 接下来是service:MainService.java package com.zhang.test.service; import android.app.Service;import android.content.Intent;import android.os.Handler;import android.os.IBinder;import android.os.Message;import android.os.RemoteCallbackList;import android.os.RemoteException;import android.util.Log; public class MainService extends Service {     private static final String TAG = "MainService";     private RemoteCallbackList mCallbacks = new RemoteCallbackList();     private IService.Stub mBinder = new IService.Stub() {         @Override        public void unregisterCallback(ICallback cb){            if(cb != null) {                mCallbacks.unregister(cb);            }        }         @Override        public void registerCallback(ICallback cb){            if(cb != null) {                mCallbacks.register(cb);            }        }    };     @Override    public IBinder onBind(Intent intent) {        Log.d(TAG, "onBind");        return mBinder;    }     @Override    public void onCreate() {        Log.d(TAG, "onCreate");        //这里不知道为什么,直接使用callback方法回调showResult        //mCallbacks.beginBroadcast()是0,需要用handler延迟1000毫秒        //也许是在activity中binService太耗时的原因?        mHandler.sendEmptyMessageDelayed(0, 1000);        super.onCreate();    }     @Override    public void onDestroy() {        mHandler.removeMessages(0);        mCallbacks.kill();        super.onDestroy();    }     private void callBack() {       &n

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号