远程服务例子
来源:互联网 发布:淘宝店铺手机端装修 编辑:程序博客网 时间:2024/06/06 02:42
远程服务场景:应用需要调用其他应用服务中的方法,或调用底层服务中的方法。
aidl:
package com.example.aidl2;interface IAidlBinder { boolean isUidExist(int uid);}
远程服务:
public class AidlService extends Service { @Override public IBinder onBind(Intent intent) { return new AidlBinder(); } public class AidlBinder extends IAidlBinder.Stub { @Override public boolean isUidExist(int uid) { return isUidSaved(uid); } } private boolean isUidSaved(int uid) { boolean result = false; String str = "1000|10012|10013|10087"; if (str.contains(String.valueOf(uid))) { result = true; } return result; }}
注册服务:
<service android:name="com.example.aidl2.AidlService"> <intent-filter > <action android:name="com.example.aidl2.AidlService"/> </intent-filter></service>
其他应用调用:
public class MainActivity extends Activity { private IAidlBinder mService; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); bindAidl(); Button button = (Button) findViewById(R.id.button); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if (mService != null) { try { boolean uidExist = mService.isUidExist(10012); System.out.println("uid是否存在" + uidExist); } catch (RemoteException e) { e.printStackTrace(); } } } }); } @Override protected void onDestroy() { super.onDestroy(); unBindAidl(); } private void bindAidl() { Intent service = new Intent(); service.setAction("com.example.aidl2.AidlService"); bindService(service, mConn, Context.BIND_AUTO_CREATE); } private void unBindAidl() { if (mConn != null) { unbindService(mConn); } mService = null; } ServiceConnection mConn = new ServiceConnection() { @Override public void onServiceDisconnected(ComponentName name) { } @Override public void onServiceConnected(ComponentName name, IBinder service) { mService = IAidlBinder.Stub.asInterface(service); } };}
调用者要想调用服务里面的方法,必须要保证aidl文件同远程服务里面的一样(包名也要和远程服务中aidl所在的包名相同)。
0 0
- 远程服务例子
- 远程服务例子2
- 远程服务例子3
- hessian远程服务调用例子
- 远程服务
- 远程服务
- 服务之远程服务
- 服务(service)-----远程服务
- windows2003服务---远程访问服务
- 绑定服务&绑定远程服务
- python pexpect和argparse模块用法例子之确保一批远程机器指定一批服务在运行
- 移值XP远程服务
- jboss 远程访问服务
- 远程安装终端服务
- 远程连接ORACLE服务
- RAS--远程访问服务
- 译尔易远程口译服务
- 远程调用服务
- WAS部署 -- SRVE0255E: 尚未定义要处理 /snoop 的 Web 组/虚拟主机
- CentOS 7 部署 Kubernetes
- Android5.x 新控件之RecyclerView,CardView,Palette的使用
- redis 学习笔记-client端示例代码
- 关于新浪微博的SDK
- 远程服务例子
- 观察者模式实现老板状态变化通知 C++
- JSP 内置对象
- 基于 CMMI 的软件外包管理评估体系
- SAX解析错误,org.apache.harmony.luni.util.FloatingPointParser.parseDouble(FloatingPointParser.java:267)
- 开发板mount宿主机出现提示:mount: nfs mount failed: Bad file descriptor的解决方案
- Query获取Select选择的Text和Value:
- Django模板简介
- HDOJ 2020 绝对值排序