我刚刚看到,虽然Windows Phone 7.5后台任务可以轮询某个位置,但它们实际上并不是从GPS实时轮询,而是位置API调用返回系统缓存位置,该位置仅每15分钟更新一次.
当然,这种限制完全无效导致在后台运行导航的任何尝试,因为你可以在十五分钟内远离偏离轨道,更不用说后台任务只能每三十分钟左右运行一次!
尽管如此,诺基亚的导航软件,据说透过Runtastic的应用也继续在后台运行跟踪(即不只是在锁屏),无一不是在市场这意味着他们已被批准,所以没有人知道他们是如何做的SDK据说不支持?
作为参考,我们实际上并不需要实时跟踪...可能只需要一次,但我们不需要那么多准确度......也许需要100英尺左右...但我们确实需要比我们更多被给予了.我们只是不知道他们是如何在批准的应用程序中这样做的.
location background-process windows-phone-7 background-agents
我想在我的应用程序后台运行一个进程,该进程获取用户当前的纬度/经度(每隔5分钟)并通过Web服务调用将其报告给我们的服务器.当我向info.plist添加所需的背景模式时,我有以下选项:
-App plays audio
-App registers for location updates
-App provides Voice over IP services
现在在我的情况下,我显然需要在列表上的第二个选择,但一旦我有位置我可以用它做什么?我可以在后台进行Web服务调用吗?还有什么其他限制?
非常感谢!
当我在iPhone 4上测试时,我有一些代码运行缓慢.我正在考虑研究Grand Central Despatch并使用后台线程执行某些任务.但是,据我所知,iPhone 4是单核设备.这是否意味着使用后台线程在此设备上没有任何好处?
我在Apple的文档中找不到关于这方面不同设备功能的内容,也不熟悉后台处理.
iphone cocoa-touch background-process grand-central-dispatch ios
为什么我可以在zsh中执行此操作:
zsh$ sleep 5 &; echo foo
[1] 14742
foo
Run Code Online (Sandbox Code Playgroud)
但不是在bash?
bash$ sleep 5 &; echo foo
bash: syntax error near unexpected token `;'
Run Code Online (Sandbox Code Playgroud)
有没有办法在bash中做同等效果的?
我有一个特定软件的七个许可证。因此,我想同时开始 7 个工作。我可以使用“&”来做到这一点。现在,'wait' 命令会等到所有这 7 个进程结束以生成下一个 7 个进程。现在,我想编写 shell 脚本,在我开始前七个进程之后,以及当工作完成时我想开始另一个。这是因为这 7 种工作中的一些可能需要很长时间,而另一些则很快就会完成。我不想浪费时间等待他们全部完成。有没有办法在linux中做到这一点?请你帮助我好吗?
谢谢。
linux parallel-processing background-process batch-processing
根据我们的要求,即使应用程序处于后台,我们也需要播放声音.我们使用[AVAudioPlayer Play]的目的是播放声音.
如果应用程序在前台,它可以工作.但是如果应用程序在后台并且我们也在音乐播放器中播放歌曲然后控制进入[AVAudioPlayer Play]声明,则没有任何反应.
我们已经经历了很多链接,在plist中添加了背景模式并且还添加了 [[UIApplication sharedApplication] beginReceivingRemoteControlEvents];但事情没有成功.
请建议是否还有其他选择.
我试图让这个工作正常,但它总是似乎早在174秒(2.9分钟)结束.我一直在线关注如何使用beginBackgroundTaskWithExpirationHandler的每个教程,我没有看到我的代码有任何问题.我需要这个结束时间为8.5分钟.在调用到期处理程序之前,endBackgroundTask方法甚至不会调用.这有什么不对吗?
- (void)applicationDidEnterBackground:(UIApplication *)application {
if([[UIDevice currentDevice] respondsToSelector:@selector(isMultitaskingSupported)])
{
NSLog(@"Multitasking Supported");
backgroundTask = [application beginBackgroundTaskWithExpirationHandler:^ {
NSLog(@"Terminated");
//Clean up code. Tell the system that we are done.
[application endBackgroundTask: backgroundTask];
backgroundTask = UIBackgroundTaskInvalid;
}];
timer = [NSTimer scheduledTimerWithTimeInterval:1
target:self
selector:@selector(count:)
userInfo:nil
repeats:YES];
}
else
{
NSLog(@"Multitasking Not Supported");
}
}
-(void)turnOffDesktops:(NSTimer *)time {
//do smth
if(count < (60*8.5)){
NSLog(@"%d",count);
count++;
}else{
[application endBackgroundTask: backgroundTask];
backgroundTask = UIBackgroundTaskInvalid;
[timer invalidate];
timer = nil;
count = 0;
}
Run Code Online (Sandbox Code Playgroud)
}
而不是这个:
$ command1 &
$ command2 &
$ …
Run Code Online (Sandbox Code Playgroud)
有没有办法在bash中执行等效操作,但是在单行输入上?
我的应用程序允许用户访问通过网络播放有声读物的服务.我正在使用UIWebView来处理这个问题.
退出应用程序或设备进入睡眠状态时,音频将停止播放.由于我只是显示网页视图没有直接播放音频文件,我无法使用这些方法在后台播放音频.
但是,如果您通过Safari应用程序访问相同的链接,则在手机进入睡眠状态后,音频会继续播放.如何在我的应用程序中实现相同的效果?
我有一个用Swift编写的工作音乐应用程序.我想整合睡眠模式,可以暂停播放的音乐,例如10分钟.我用perform(_ aSelector: Selector, with anArgument: Any?, afterDelay delay: TimeInterval)这个任务,它工作得很好.
但是有一个问题.iPhone很有可能在10分钟结束前进入睡眠状态,因此不会调用暂停功能,音乐会继续播放.
我知道还有其他方法可以在10分钟后发送一个动作(NSTimer,使用GCD)但是如果我理解,这些解决方案都不会阻止机器进入睡眠状态,或者唤醒应用程序来执行任务.
也许我可以使用后台模式,但是:
这是实现我需要的方式吗?
ios ×6
bash ×2
iphone ×2
shell ×2
cocoa-touch ×1
ios6 ×1
ios7 ×1
linux ×1
location ×1
multitasking ×1
sleep-mode ×1
swift ×1
timer ×1
uiwebview ×1
zsh ×1