相关疑难解决方法(0)

如何让在后台运行的iPhone应用程序完全正常运行

首先,我知道只支持voip,音频和位置应用程序在后台运行,并且它们将在播放音频或使用位置服务等时运行.

我想知道的是,如果有办法让我的应用程序在后台运行完全正常运行,那么对电池寿命的影响无关紧要.

这样,我的应用程序的用户可以从设置中进行选择,以便随时随地保持应用程序,并且只需要他想要的时间.例如,如果他正在等待需要应用程序运行的内容,则在收到消息后,他可以关闭保持活动功能.

我不知道这是否可行,但我读过一些帖子,但不幸的是他们没有说如何=(

更新:在本教程中,我发现Acrobits在Apple Store上有两个应用程序"可以强制应用程序保持活动并在后台唤醒".那么有办法做到这一点吗?

iphone objective-c keep-alive background-process ios4

32
推荐指数
3
解决办法
11万
查看次数

NSURLSession后台上传无法正常工作

我正在尝试将一系列文件从iPhone上传到服务器,目的是即使应用程序处于后台或暂停,也会上传这些文件.

我正在使用由它及其系列API 提供的后台传输NSURLSession.

奇怪的是它在两周前完全正常工作.如:

  1. 我会点击UI上的"上传"按钮
  2. 文件将开始在我的服务器上逐一显示
  3. 我点击iPhone上的"主页"按钮,让应用程序进入后台
  4. 文件将继续上传到服务器,直到它们全部完成

最近几天,我一直在网络模块之外进行一些重构.几天前我再次尝试上传时,只要按下"主页"按钮,上面的步骤(3).当我再次进入应用程序时,文件上传将停止.上传将恢复.

这就好像后台上传甚至不起作用(对于一个文件,更不用说多个文件).

我已多次运行代码,发现它的工作量约为1/50.但其他49次没有.我还检查了以前使用的代码版本(服务器+ iOS),它不再有效 - 或者说,工作很少变化(1/50)

多次完成背景传输和URL会话生命周期规则,以确保我遵守Apple建议的指导方针,我正在绞尽脑汁想知道什么破坏了,这让人难以理解这是多么不合逻辑 - 我怀疑它是代码实现以外的东西.

所以任何帮助都表示赞赏......

履行

1)在init我的网络类(单例)的方法中,我初始化NSURLSessionConfigurationNSURLSession:

    urlSessionConfigUpload = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:kBACKGROUND_SESSION_CONFIG_ID];
    urlSessionConfigUpload.sessionSendsLaunchEvents = YES;
    urlSessionConfigUpload.discretionary = YES;
    urlSessionConfigUpload.HTTPMaximumConnectionsPerHost = 8;
    urlSessionConfigUpload.networkServiceType = NSURLNetworkServiceTypeBackground;
    urlSessionConfigUpload.HTTPShouldUsePipelining = NO; 
    urlSessionConfigUpload.allowsCellularAccess = NO;

    urlSession = [NSURLSession sessionWithConfiguration:urlSessionConfigUpload delegate:self delegateQueue:nil];
Run Code Online (Sandbox Code Playgroud)

2)有一种方便的方法叫做实际上传.每个会话只有1个上传任务:

    NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:url];
    [urlRequest setHTTPMethod:@"PUT"];
    [urlRequest addValue:@"keep-alive" forHTTPHeaderField:@"Connection"];
    [urlRequest addValue:contentType forHTTPHeaderField:@"Content-Type"];

    // NB: for upload …
Run Code Online (Sandbox Code Playgroud)

objective-c background-process ios

8
推荐指数
1
解决办法
3809
查看次数

iOS相当于Android服务?

因此,iOS 7支持更广泛的后台模式,是否有可能最终在iOS上拥有相当于Android服务?

我所追求的实际上是在后台运行应用程序A并且有一个或多个应用程序B和C与该应用程序通信(没有显示应用程序A的GUI).

请注意,使用连接和推送通知可能不是一种选择,尽管这是建议的方式.有任何想法吗?

service android background ios ios7

6
推荐指数
1
解决办法
1万
查看次数