Core Foundation DEMO:
Tweak端:

  1. CFNotificationCenterAddObserver(CFNotificationCenterGetDarwinNotifyCenter(),
  2. NULL,
  3. &NotificationReceivedCallback,
  4. CFSTR("com.chinapyg.fakecarrier-change"),
  5. NULL,
  6. CFNotificationSuspensionBehaviorCoalesce);
  7. 回调:
  8. static void NotificationReceivedCallback(CFNotificationCenterRef center,
  9. void *observer, CFStringRef name,
  10. const void *object, CFDictionaryRef
  11. userInfo)
  12. {
  13. //....  可以根据 name来判断是何种消息,下面的客户端传了NULL,所以无需判断了,在多种消息的时候需要用到
  14. }

复制代码

APP端:
1.一句代码即可

  1. notify_post("com.chinapyg.fakecarrier-change");

复制代码

2.复杂点的

  1. CFStringRef observedObject =
  2. CFSTR("com.chinapyg.fakecarrier-change");
  3. CFNotificationCenterRef center =
  4. CFNotificationCenterGetDistributedCenter();
  5. CFNotificationCenterPostNotification(center, NULL,
  6. observedObject, NULL /* no dictionary */, TRUE);

复制代码

///////////////////////////////////////////////////////////////////////////////////////////
华丽的分割线
///////////////////////////////////////////////////////////////////////////////////////////
Cocoa DEMO:

接收端(后台):

  1. NSString *observedObject = @"com.chinapyg.notification";
  2. // 处理单个计算机上不同的进程之间的通知
  3. NSDistributedNotificationCenter *center =
  4. [NSDistributedNotificationCenter defaultCenter];
  5. [center addObserver: self
  6. selector: @selector(callbackWithNotification:)
  7. name: @"PiaoYun Notification"
  8. object: observedObject];
  9. 回调:
  10. - (void)callbackWithNotification:(NSNotification *)myNotification;
  11. {
  12. NSLog(@"Notification Received");
  13. }

复制代码

发送端(app):

  1. NSString *observedObject = @"com.mycompany.notification";
  2. NSDistributedNotificationCenter *center =
  3. [NSDistributedNotificationCenter defaultCenter];
  4. [center postNotificationName: @"PiaoYun Notification"
  5. object: observedObject
  6. userInfo: nil /* no dictionary */
  7. deliverImmediately: YES];

复制代码

iOS上层接口:

  1. // 处理单进程之间的通知
  2. [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(callBack) name: @"back" object: nil];
  3. // 回调
  4. - (void)callBack
  5. {
  6. NSLog(@"Notification Received");
  7. }
  8. //发出通知
  9. [[NSNotificationCenter defaultCenter] postNotificationName:@"back" object:self];

复制代码

Tweak和app交互方案【进程通信】的更多相关文章

  1. 微端游戏启动器LAUNCHER的制作之MFC版一(序和进程通信)

    额...刚开始信誓旦旦说要写launcher制作的博客,还没写完就被抛到脑后了真是没毅力.最近把之前写的wpf的launcher改成了mfc版,遇到很多问题,写了三个星期才写完,好好记录一下吧.我也想 ...

  2. 跨进程通信之Messenger

    1.简介 Messenger,顾名思义即为信使,通过它可以在不同进程中传递Message对象,通过在Message中放入我们需要的入局,就可以轻松实现数据的跨进程传递了.Messenger是一种轻量级 ...

  3. 安卓中不同APP之间的消息通信

    昨天在腾讯实习生招聘初试面试时面试官问道我关于两个APP之间相互通信的方式,当时自己回道到了contentProvider与BroadcastReceiver.但他接着问还有没有其它的方式,我跟他说可 ...

  4. 【朝花夕拾】Android性能篇之(七)Android跨进程通信篇

    前言 只要是面试高级工程师岗位,Android跨进程通信就是最受面试官青睐的知识点之一.Android系统的运行由大量相互独立的进程相互协助来完成的,所以Android进程间通信问题,是做好Andro ...

  5. Android-Messenger跨进程通信

    http://blog.csdn.net/lmj623565791/article/details/47017485 一.概述 我们可以在客户端发送一个Message给服务端,在服务端的handler ...

  6. AIDL/IPC Android AIDL/IPC 进程通信机制——超具体解说及使用方法案例剖析(播放器)

    首先引申下AIDL.什么是AIDL呢?IPC? ------ Designing a Remote Interface Using AIDL 通常情况下,我们在同一进程内会使用Binder.Broad ...

  7. 详解 CmProcess 跨进程通信的实现

    CmProcess 是 Android 一个跨进程通信框架,整体代码比较简单,总共 20 多个类,能够很好的便于我们去了解跨进程实现的原理. 个人猜测 CmProcess 也是借鉴了 VirtualA ...

  8. Unix 进程通信基本概念

    一:通信分为两类: 控制信息的传递: 低级通信 大批量数据的传递: 高级通信 二:基本的通信方式 (a)主从式通信: 通信的双方存在一种隶属关系, 其中主进程是通信过程的控制者,而从进程是通信过程的从 ...

  9. android92 aidl远程进程通信

    05项目RemoteService.java package com.itheima.remoteservice; //05项目 import com.itheima.remoteservice.Pu ...

随机推荐

  1. java scanner工具类

    import java.util.Scanner; public class ScannerTest { public static void main(String[] args) { Scanne ...

  2. Accept Job Offer Email Template

    Accept Job Offer Email Template <Date> <Hiring Manager’s name> <Company name> < ...

  3. 访问https请求出现警告,去掉警告的方法

    在顶部引多一个包即可 from requests.packages.urllib3.exceptions import InsecureRequestWarning,InsecurePlatformW ...

  4. Regenerate Script 重置脚本

    1.Regenerate Script 重置回录制后的第一次脚本,当修改设定后点击这个按钮,新的设置也会录制到 如:开始没有录到下载的文件,添加下载文件的个时候,再次点击重置,就录制到了 如:如开始是 ...

  5. ylbtech-Tool:

    ylbtech-Tool: 1.返回顶部   2.返回顶部   3.返回顶部   4.返回顶部   5.返回顶部     6.返回顶部   7.返回顶部   8.返回顶部   9.返回顶部   10. ...

  6. Ubuntu 升级内核版本

    查看当前内核版本 sch01ar@ubuntu:~$ uname -r Ubuntu 内核地址:https://kernel.ubuntu.com/~kernel-ppa/mainline/ 打开这个 ...

  7. WordPress部署

    WordPress部署 WordPress是一个门户.博客网站的制作工具,php开发,自带后台,可以很简便的安装主题,还拥有一个庞大的主题网站生态. 软件下载:https://cn.wordpress ...

  8. CB XE7 C11 64位编译器 成员变量初始化

    看到了C++11,看到了XE7的64位,想实现下面方便的类成员初始化,失望. 一.64位用法 clang3,64位编译器,不支持中文变量名,编写代码提示没有32位快,风格简单不用写单独的赋值语句函数, ...

  9. 可视化库-Matplotlib-散点图(第四天)

    1. 画基本的散点图 plt.scatterdata[:, 0], data[:, 1], marker='o', color='r', label='class1', alpha=0.4) np.r ...

  10. 【python 】Requests 库学习笔记

    概览 实例引入 import requests response = requests.get('https://www.baidu.com/') print(type(response)) prin ...