自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

iPhone開發(fā)之守護(hù)進(jìn)程和前臺(tái)進(jìn)程之間通信原理

移動(dòng)開發(fā) iOS
本文介紹的是iPhone開發(fā)之守護(hù)進(jìn)程和前臺(tái)進(jìn)程之間的通信,主要講述的是進(jìn)程之間的通信,先來看詳細(xì)內(nèi)容。

iPhone開發(fā)之守護(hù)進(jìn)程和前臺(tái)進(jìn)程之間的通信是本文要介紹的內(nèi)容,當(dāng)我們創(chuàng)建基于mobilesubstrate的應(yīng)用時(shí),通常都是一些前后臺(tái)程序,典型的比如蘋果皮等,這個(gè)需要前臺(tái)程序法信息到后臺(tái)進(jìn)程中,這里有兩種方式

一種是基于文件的模式

也就是在后臺(tái)程序中設(shè)定一個(gè)定時(shí)器,定時(shí)讀取用戶交互信息的文件,這樣實(shí)現(xiàn)的通信機(jī)制,雖然也解決了問題,但是,缺陷是需要一直跑一個(gè)定時(shí)器來查詢前臺(tái)是否傳遞信息過來了

還有一種是使用CFMessagePortRef

典型的如下模式:

  1. #define APP_ID "yohunl.support.mach.port"  
  2. #define MACH_PORT_NAME APP_ID 

在后臺(tái)進(jìn)程中創(chuàng)建一個(gè)用于進(jìn)程通訊的 CFMessagePortRef

  1. CFMessagePortRef local = CFMessagePortCreateLocal(kCFAllocatorDefault, 
  2. CFSTR(MACH_PORT_NAME), mouseCallBack, NULL, NULL);  
  3.   CFRunLoopSourceRef source = CFMessagePortCreateRunLoopSource(kCFAllocatorDefault, local, 0);  
  4. CFRunLoopAddSource(CFRunLoopGetCurrent(), source, kCFRunLoopCommonModes); 

其中的mouseCallback是回調(diào)函數(shù),其聲明是

  1. CFDataRef mouseCallBack(CFMessagePortRef local, SInt32 msgid, CFDataRef cfData, void *info); 

在前臺(tái)進(jìn)程中使用發(fā)送消息的模式

  1. CFMessagePortRef bRemote = CFMessagePortCreateRemote(kCFAllocatorDefault, CFSTR(MACH_PORT_NAME));  
  2. // tell thread b to print his name  
  3. char message[255]="lingdaiping,yohunl";  
  4. CFDataRef data;  
  5. data = CFDataCreate(NULL, (UInt8 *)message, strlen(message)+1);  
  6. (void)CFMessagePortSendRequest(bRemote, CFSTR(MACH_PORT_NAME), data, 0.0, 0.0, NULL, NULL);  
  7. CFRelease(data);  
  8. CFRelease(bRemote); 

還有一種信號(hào)量的機(jī)制,本人也還沒研究,但是看見過別的程序中有使用過,應(yīng)該也是可以的!

小結(jié):iPhone開發(fā)之守護(hù)進(jìn)程和前臺(tái)進(jìn)程之間的通信的內(nèi)容介紹完了,希望通過本文的學(xué)習(xí)對你有所幫助!

責(zé)任編輯:zhaolei 來源: 網(wǎng)絡(luò)轉(zhuǎn)載
相關(guān)推薦

2021-02-14 21:05:05

通信消息系統(tǒng)

2023-05-10 07:53:08

.Net開發(fā)多進(jìn)程通信方式

2016-12-30 14:56:06

Native進(jìn)程Trace

2019-11-08 14:47:49

TCPIP網(wǎng)絡(luò)

2021-07-15 12:44:25

Shell編程進(jìn)程

2019-07-09 10:31:51

面試通信進(jìn)程

2024-01-05 08:41:31

進(jìn)程間通信IPC異步通信

2018-07-06 14:00:55

Linux進(jìn)程線程

2010-06-28 14:52:30

cron進(jìn)程

2021-07-06 21:30:06

Linux進(jìn)程通信

2020-04-29 15:10:16

Linux命令進(jìn)程

2017-08-06 00:05:18

進(jìn)程通信開發(fā)

2010-03-02 16:37:53

Linux Quagg

2021-09-30 10:45:33

Linux進(jìn)程通信

2018-05-31 10:57:31

Linux系統(tǒng)進(jìn)程線程

2011-06-22 17:27:19

QT 進(jìn)程通信

2011-08-24 10:45:23

Oracle數(shù)據(jù)庫進(jìn)程從屬進(jìn)程

2009-11-24 11:35:59

2010-07-15 15:54:10

Perl守護(hù)進(jìn)程

2011-03-29 12:45:07

Zabbix進(jìn)程
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)