A.apk 使用aidl调用B.apk的Service的函数
来源:互联网 发布:2017网络知识竞赛答题 编辑:程序博客网 时间:2024/06/03 13:31
A.apk 使用aidl调用B.apk的Service的函数
B.apk
package="com.eddy.android.aidlcall"
新建一个IRemoteService.aidl文件
package com.eddy.android.aidlcall;
interface IRemoteService
{
void manualUpdate(String location);
void cancelUpdate();
}
新建一个RemoteService.class文件
public class RemoteService extends Service {
@Override
public IBinder onBind(Intent arg0) {
return mBinder;
}
private final IBinder mBinder = new ServiceStub(this);
static class ServiceStub extends IRemoteService.Stub{
WeakReference<RemoteService> mService;
public ServiceStub(RemoteService service) {
mService = new WeakReference<RemoteService>(service);
}
public void cancelUpdateWeather() throws RemoteException {
.... //做你想做的。
}
public void manualUpdateWeather(String location) throws RemoteException {
...... //做你想做的。
}
}
}
在Android.mk
LOCAL_SRC_FILES := $(call all-java-files-under, src) /
src/com/eddy/android/aidlcall/IWeatherRemoteService.aidl
在AndroidManifest.xml
<service android:name="RemoteService">
<intent-filter>
<action android:name="android.intent.action.WEATHER_SERVICE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</service>
A.apk
使用B.apk的Service的函数。
在Activity中
private IRemoteService mService = null;
protected void onCreate(Bundle savedInstanceState){
bindService(new Intent("android.intent.action.WEATHER_SERVICE"), mServiceConn, Context.BIND_AUTO_CREATE);
}
@Override
protected void onDestroy() {
unbindService(mServiceConn);// 取消service邦定
super.onDestroy();
}
private void method(){
mService.cancelUpdateWeather(); //--调用B.apk中的函数
mService.manualUpdateWeather(null); //--调用B.apk中的函数
}
private ServiceConnection mServiceConn = new ServiceConnection(){
public void onServiceConnected(ComponentName name, IBinder service) {
mService = IWeatherRemoteService.Stub.asInterface(service);
}
public void onServiceDisconnected(ComponentName name) {
//mService = null;
//关闭service.
}
};
注意:
将B.apk的IRemoteService.aidl文件生成的IRemoteService.java文件拷到a.apk的package下。
- A.apk 使用aidl调用B.apk的Service的函数
- aidl详解:同一APK内,不同apk间的activty与service通信
- android调用远程service(一个apk调用另一个apk的service)
- FlowDroid获取APK的函数调用图
- AIDL Service 的使用
- 不安装apk调用apk的方式
- android apk调用apk的方式汇总
- Android aidl 制作的下载apk
- Android中不使用AIDL实现Service的远程调用
- Android中不使用AIDL实现Service的远程调用
- Android APK之间的调用
- AIDL编译成独立APK,供其他APK调用
- 使用Androguard配合Gephi生成apk的函数调用图进行静态分析
- Android学习第十一篇:获取apk的函数调用图
- 从java apk中调用 Flex air apk 的方法
- 从Java Apk中调用 Flex Air Apk 的方法
- 一个apk调用另一个apk的某个activity
- 从java apk中调用 Flex air apk 的方法
- 简单的悬浮显示
- 如何将字符串中连续的多个空格用一个替换
- linux压缩解压命令(转)
- 第2章 基本编程语句
- HDL编程使用verilog代码而非逻辑框图的原因--持续更新
- A.apk 使用aidl调用B.apk的Service的函数
- How does HBase perform load balancing?
- 在IE上显示自己的名字(很好玩哦)!
- 类的访问控制
- BREW From Scratch....
- 怎么判断选择哪条代码?
- 开机启动Service
- 再见,我的实习公司
- csdn ibm