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

一.什么是进程

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(@"跳转有误");

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 介绍 : JLRoutes是一个调用极少代码 , 可以很方便的处理不同URL schemes以及解析它们的参数,并...
    CoderLF阅读 1,693评论 0 3
  • 目标 平常我们做iOS开发,会经常遇到打开其他的APP的功能。本篇文章讲的就是打开别人的APP的一些知识。我们的目...
    橙娃阅读 6,705评论 0 5
  • 介绍 : JLRoutes是一个调用极少代码 , 可以很方便的处理不同URL schemes以及解析它们的参数,并...
    一支烟一只猿阅读 11,604评论 3 17
  • 文集||在岁月中跋涉 上一章 伏特加在哭泣 简易安回国那年,默念大三。 母校的老校长多次打电话邀请他回校开讲座,着...
    苏家小六阅读 1,066评论 8 9
  • 做销售一定是会说话,但是说好话,这不是简单的事,接下来小编来阐述几种门店销售技巧,让你的销售能力提升5倍以上! 1...
    宾宾日记阅读 274评论 0 0

友情链接更多精彩内容