(一)iOS開發(fā)之多線程—進(jìn)程

一.什么是進(jìn)程

1.進(jìn)程是指在系統(tǒng)中正在運(yùn)行的一個應(yīng)用程序;

2.每個進(jìn)程之間是獨立的,每個進(jìn)程均運(yùn)行在其專用且受保護(hù)的內(nèi)存空間內(nèi),擁有獨立運(yùn)行所需的全部資源。

例如:


二.iOS進(jìn)程個數(shù)

1.iOS當(dāng)前桌面操作的進(jìn)程只有一個,不能像pc一樣擁有多桌面進(jìn)程;

2.后臺的進(jìn)程(程序)如果沒有授權(quán)很快進(jìn)入掛起狀態(tài),后臺進(jìn)程要有授權(quán)才能使用GPS定位,音樂播放等。

三.進(jìn)程間通信

進(jìn)程間的跳轉(zhuǎn)

1.先創(chuàng)建兩個測試工程

a.被跳轉(zhuǎn)的工程配制如下:

1.配制URL types:


2.接收參數(shù)

AppDelegate中添加

-(BOOL)application:(UIApplication*)app openURL:(NSURL*)url options:(NSDictionary *)options

{

//從option字典對象取出參數(shù),@"tbb.toProcess2.com”為主動跳轉(zhuǎn)工程的Bundle Identifier

if([[optionsobjectForKey:UIApplicationOpenURLOptionsSourceApplicationKey]isEqualToString:@"tbb.toProcess2.com"]) {

NSLog(@"URL Schemes:%@參數(shù)部分%@", [urlscheme], [urlquery]);

NSLog(@"url:%@",url.absoluteString);

}

returnYES;

}

b.跳轉(zhuǎn)工程配制如下:

1.如果你是iOS 9.0以上的系統(tǒng),當(dāng)你運(yùn)行上面的第二個工程后點擊按鈕,你應(yīng)該會看到一串類似標(biāo)題的異常輸出,并且應(yīng)用沒有想期望的那樣進(jìn)行跳轉(zhuǎn)。

解決方案:配置scheme到LSApplicationQueriesSchemes


2.跳轉(zhuǎn)代碼:

不帶參跳轉(zhuǎn):

NSURL*url = [NSURLURLWithString:@"toProcess://"];

//先判斷一下是否可以啟動該url

if([[UIApplicationsharedApplication]canOpenURL:url]) {

[[UIApplicationsharedApplication]openURL:url];

}

else{

NSLog(@"跳轉(zhuǎn)有誤");

}

帶參跳轉(zhuǎn):

NSURL*url = [NSURLURLWithString:@"toProcess://?name=1Process&2Process"];

//先判斷一下是否可以啟動該url

if([[UIApplicationsharedApplication]canOpenURL:url]) {

[[UIApplicationsharedApplication]openURL:url];

}

else{

NSLog(@"跳轉(zhuǎn)有誤");

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容