Android中进程process间通信的实现方式
来源:互联网 发布:合肥java工资待遇 编辑:程序博客网 时间:2024/06/05 19:10
1. Intent;
2. Binder(AIDL);
3. Message;
4. BroadcastReceiver.
Demo
1. Intent:
AndroidManifest.xml
activity_main.xml
activity_01.xml
intentdemo\src\main\java\com\xyy\intentdemo
MainActivity.javaActivity01.java
ShareActivity.java
======================================================
2.Binder:
binder机制是一种IPC机制,进程间通讯的一种工具。
Java层可以利用AIDL工具来实现相应的接口(生成通讯代码)。
service服务在后台运行
service注册: <serviceandroid:name="com.startservice.MyService"></service>
启动服务service 两种方式:
一 startservice
启动该服务的Activity挂了,服务不会挂,大难临头各自飞;不能拿到service的实例
Service:
//绑定时候的回调方法
@Override
publicIBinder onBind(Intentintent) {
returnnull;
}
//最后调用的方法
@Override
publicvoid onDestroy() {
super.onDestroy();
Log.d("TAG","StartService onDestroy");
}
//服务启动之后的回调
@Override
@Deprecated
publicvoid onStart(Intent intent,int startId) {
super.onStart(intent,startId);
Log.d("TAG","StartService onStart");
}
//最先调用的方法
@Override
publicvoid onCreate() {
super.onCreate();
Log.d("TAG","StartService onCreate");
}
//=========================
Activity.java:
Intent mIntent = new Intent();
mIntent.setClass(getApplicationContext(), MyService.class);
bindService(mIntent, mConnection, Context.BIND_AUTO_CREATE);
二绑定服务
可以拿到服务的实例,引用。启动该服务的Activity挂了,服务也会挂了。
1 IBinder -- 类似王婆
IBinder是远程对象的基本接口,
是为高性能而设计的轻量级远程调用机制的核心部分。
但它不仅用于远程调用,也用于进程内调用。
这个接口定义了与远程对象交互的协议。
不要直接实现这个接口,而应该从Binder派生。
2绑定服务
Service:
classMyBinder extends Binder{
//通过getStartService拿到本服务的引用
StartServicegetStartService(){
//把本服务传递出去了
returnStartService.this;
}
}
//绑定时候的回调方法
@Override
publicIBinder onBind(Intentintent) {
Log.d("TAG","StartService onBind");
//MyBinder--方法 getgetStartService 可以获取到本服务
//获取本服务实例的步骤
//1拿到MyBinder 2 调用 getStartService
returnnew MyBinder();
}
Activity:
ServiceConnection mConnection= newServiceConnection() {
//断开服务连接的回调方法
@Override
publicvoidonServiceDisconnected(ComponentName name) {
}
//服务连接的回调方法 --- 在此方法中,拿到服务的引用
@Override
publicvoidonServiceConnected(ComponentName name, IBinder service) {
//拿到王婆
MyBinderm =((MyBinder)service);
//通过王婆,拿到潘XX
mService=m.getStartService();
mService.playMusic("听");
}
}
Service :
//绑定
Intent mIntent = new Intent();
mIntent.setClass(getApplicationContext(),StartService.class);
//绑定的时候自动创建
bindService(mIntent,mConnection,Context.BIND_AUTO_CREATE);
//拿到服务的实例可以执行服务的方法
-------------------------------------------------------------------------------Client 端videoDemo
AndroidManifest.xmlres\layout
activity_main.xml
VideoService.java
MainActivity.java
==========================================
3. Message:
MainActivity.java
TCPThread
res\layout
activity_main.xml
TalkitemtalkTCPhandlerClient\res\drawable-hdpi
.9.patch pictalkTCPhandlerServer\src\com\demo
ServerThread
Demo.java
==========================================
4. BroadcastReceiver:
DemoNotificationBroadcastMusic
AndroidManifest.xml
Local music no need manifest
-----------------------------------------------------------------------
notificationlayout.xmlMainActivity.java
- Android中进程process间通信的实现方式
- Android进程中通信的方式
- Android 进程间通信的几种实现方式
- android实现进程间通信(IPC)的方式
- Android--进程间通信的几种实现方式
- Android--进程间通信的几种实现方式
- 详解Android 进程间通信的几种实现方式
- Android中进程间通信的几种方式
- 【进程间通信】Android 进程间通信的几种实现方式
- 【IPC】Linux进程间通信(Inter Process Communication)通信方式
- 进程间通信--管道的实现方式
- android进程间的通信方式AIDL
- Android Process 进程通信(一)
- Android process之进程通信
- android进程通信的方式
- Android进程间通信方式
- 进程间同步(Process Synchronization)-2 通过semaphore方式来实现进程间同步的例子
- Android中进程间通信(IPC)方式总结
- 常见浏览器兼容性问题与解决方案
- Linux系统下scala安装详解
- wpf 全屏
- codeforces 776C
- 学习web前端这样才能拿到高工资
- Android中进程process间通信的实现方式
- MYSql基础命令(收集中.....)
- TCP KEEPALIVE详解
- Java开发—环境搭建之JDK8安装详解
- Android 异步消息处理机制 让你深入理解 Looper、Handler、Message三者关系
- Math数学方法--常用
- 通过Spring @PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作
- Appium-Java测试环境搭建(Windows)
- Internal error. Please file a bug at bugreport.apple.com and attach