美文网首页
(一)iOS开发之多线程—进程

(一)iOS开发之多线程—进程

作者: 笃Boy | 来源:发表于2017-09-26 01:02 被阅读122次

一.什么是进程

1.进程是指在系统中正在运行的一个应用程序;

2.每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内,拥有独立运行所需的全部资源。

例如:

二.iOS进程个数

1.iOS当前桌面操作的进程只有一个,不能像pc一样拥有多桌面进程;

2.后台的进程(程序)如果没有授权很快进入挂起状态,后台进程要有授权才能使用GPS定位,音乐播放等。

三.进程间通信

进程间的跳转

1.先创建两个测试工程

a.被跳转的工程配制如下:

1.配制URL types:

2.接收参数

AppDelegate中添加

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

{

//从option字典对象取出参数,@"tbb.toProcess2.com”为主动跳转工程的Bundle Identifier

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

NSLog(@"URL Schemes:%@参数部分%@", [urlscheme], [urlquery]);

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

}

returnYES;

}

b.跳转工程配制如下:

1.如果你是iOS 9.0以上的系统,当你运行上面的第二个工程后点击按钮,你应该会看到一串类似标题的异常输出,并且应用没有想期望的那样进行跳转。

解决方案:配置scheme到LSApplicationQueriesSchemes

2.跳转代码:

不带参跳转:

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

//先判断一下是否可以启动该url

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

[[UIApplicationsharedApplication]openURL:url];

}

else{

NSLog(@"跳转有误");

}

带参跳转:

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

//先判断一下是否可以启动该url

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

[[UIApplicationsharedApplication]openURL:url];

}

else{

NSLog(@"跳转有误");

}

相关文章

网友评论

      本文标题:(一)iOS开发之多线程—进程

      本文链接:https://www.haomeiwen.com/subject/gzpjextx.html