一.什么是進(jìn)程
1.進(jìn)程是指在系統(tǒng)中正在運(yùn)行的一個應(yīng)用程序魂角;
2.每個進(jìn)程之間是獨(dú)立的赦政,每個進(jìn)程均運(yùn)行在其專用且受保護(hù)的內(nèi)存空間內(nèi),擁有獨(dú)立運(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)行上面的第二個工程后點(diǎ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)有誤");
}