IBinder 的linkToDeath函数就是说当这个远程binder死亡之后,客户端这里可以收到回调。
以下是一个演示。

#include <utils/Trace.h>
#include <stdio.h>
#include <pthread.h>
#include <stdlib.h>
#include <unistd.h>
#include <semaphore.h>
#include <iostream>
#include <stdint.h>
#include <sys/types.h>
#include <set>
#include <thread>
#include <unordered_map>
#include <unordered_set>
#include <vector>
#include <inttypes.h>#include <cutils/properties.h>
#include <utils/Log.h>
#include <utils/SystemClock.h>
#include <android-base/properties.h>
#include <errno.h>
#include <fcntl.h>
#include <fstream>
#include <poll.h>
#include <pthread.h>#include <binder/IPCThreadState.h>
#include <binder/ProcessState.h>
#include <binder/Binder.h>
#include <binder/IBinder.h>
#include <binder/IPCThreadState.h>
#include <binder/IServiceManager.h>
#include <binder/IServiceManager.h>
#include <sys/wait.h>#include <private/binder/binder_module.h>
#include <sys/epoll.h>
#include <sys/prctl.h>using namespace android;
using namespace std;static String16 binderLibTestServiceName = String16("test.binderLib.0921");class TestDeathRecipient: public IBinder::DeathRecipient {private:virtual void binderDied(const wp<IBinder> &who) {printf("binderDied\n");}
};int main(int argc, char **argv) {sp < IBinder > m_server;ProcessState::self()->startThreadPool();status_t ret;sp <IServiceManager> sm = defaultServiceManager();m_server = sm->getService(binderLibTestServiceName);sp<TestDeathRecipient> testDeathRecipient = new TestDeathRecipient();ret = m_server->linkToDeath(testDeathRecipient);printf("end\n");IPCThreadState::self()->joinThreadPool();return 0;
}

此处只贴出了客户端程序,测试流程为先运行服务端程序,注册服务,然后运行客户端程序,然后关闭服务端程序,这个时候客户端的binderDied就会被回调。

binder linkToDeath的用法相关推荐

  1. Android开发艺术探索--第二章IPC机制(2)之Binder

    最近在拜读任主席的Android开发艺术探索,现在看了一半,再回头看前面的,感觉跟没有看一样,所以还是把知识点总结一下吧,这一节咱们来讲一下IPC中的Binder 直观来说,Binder是Androi ...

  2. 不得不说的Android Binder机制与AIDL

    说起Android的进程间通信,想必大家都会不约而同的想起Android中的Binder机制.而提起Binder,想必也有不少同学会想起初学Android时被Binder和AIDL支配的恐惧感.但是作 ...

  3. android ipc 多个客户端,Android IPC之AIDL进阶篇

    前言 在Android IPC之AIDL中我介绍了如何使用AIDL进行多进程通信,不过由于当时个人水平有限,仅仅介绍了最基础的部分,所以本篇博客主要是在Android IPC之AIDL的基础上深入介绍 ...

  4. Android-0.IPC相关简介

    文章目录 1.Android中的多进程模式 1.1.多进程模式示例 1.2.多进程模式的运行机制 2.IPC基础概念 2.1.Serializable接口 2.2.Parcelable接口 2.3 B ...

  5. IPC机制 基础知识

    在前面的博客中我已经写过了怎么在AndroidStudio中进行IPC开发设置 IPC是Intent-Process Communication 的缩写,含义为进程间通讯后者夸进程通讯是指两个进程之间 ...

  6. 《android开发艺术探索》读书笔记(二)--IPC机制

    接上篇<android开发艺术探索>读书笔记(一) No1: 在android中使用多进程只有一种方法,那就是给四大组件在AndroidMenifest中指定android:process ...

  7. Android 进程间通信

    要讲 Android 进程通信的话,就不得不先讲讲 Service. Service 是 Android 的四大组件之一,它主要的作用是后台执行操作,Activity 属于带有 UI 界面跟用户进行交 ...

  8. android sensor源码,阅读android有关sensor的源码总结 - JerryMo06的专栏 - CSDN博客

    虽然这篇文章写得很差,因为赶时间,所以就匆匆忙忙地写出来自己作一个笔记.但是我想对大家应该有一点帮助. 1.有关sensor在Java应用程序的编程(以注册多个传感器为例,这程序是我临时弄出来的,可能 ...

  9. [Android]进程通信Andromeda框架

    作者:苍王 时间:2018.6.1 以下是我这个系列的相关文章,有兴趣可以参考一下,可以给个喜欢或者关注我的文章. [Android]如何做一个崩溃率少于千分之三噶应用app--章节列表 组件化群1已 ...

最新文章

  1. LIVE555再学习 -- FFmpeg + live555实现RTSP直播
  2. Python Day8
  3. solr文档索引最佳实践
  4. 一文介绍备机重建各种方法的实现机制
  5. OPPO Find X5系列上架预约:全球首款天玑9000旗舰
  6. 小程序 后台返回的对象数组(每个数组添加一个新的属性值)
  7. Scrapy分布式、去重增量爬虫的开发与设计
  8. php foreach 不等于_PHP性能优化小技巧
  9. 菜菜PyTorch深度学习框架最全笔记(第二次课)
  10. python可以用于工业机器人编程_给工业机器人编程,最有效的办法是什么?
  11. JS制作一个简单的网页倒计时器
  12. html鼠标经过自动下拉菜单,用纯CSS实现鼠标经过后出现下拉菜单,实例讲解(附代码)...
  13. 接口测试 如何编写接口测试用例
  14. Bundle Adjustment简述
  15. 运行HQL时,报错:Container killed by YARN for exceeding memory limits
  16. 添加metadata到tflite模型
  17. 如何使用Hyper-V Manager和Powershell合并Hyper-V检查点
  18. 用python做头像_教你用python下载和拼接微信好友头像图片
  19. ic卡信息保存在服务器,智能IC卡网络数据安全保密系统
  20. java 亚马逊 mws_使用Amazon Deep Java库进行Java中的机器学习

热门文章

  1. 虎牙直播数据采集,为数据分析做储备,Python爬虫120例之第24例
  2. [小样本医学图像]‘Squeeze Excite’ Guided Few-Shot Segmentation of Volumetric Images
  3. 软件测试二八原则(软测之魂读后感)
  4. Android和wp7,Android 4.0与WP7孰强孰弱?
  5. HttpClient远程接口调用-实名认证
  6. Vue3电商项目实战-商品详情模块6【17-商品详情-标签页组件、18-商品详情-热榜组件、19-商品详情-详情组件、20-商品详情-注意事项组件】
  7. PCIE总线驱动学习笔记1
  8. 区块链技术入门 | 区块链开发技术栈
  9. 无人驾驶系统ISO 26262和ISO 21448开发流程的融合
  10. 容器集群技术-Kubernetes简介