我有一个脚本,每5分钟检查一次我的电脑上的内容,我不希望Python显示在我的任务托盘上.我使用Windows作为我的操作系统.
有没有办法让Python在后台运行并强制它不显示在我的任务托盘中?
即使应用程序在后台进行,我也有一些长时间运行的进程.我正在调用应用程序的beginBackgroundTaskWithExpirationHandler:方法,在expirationBlock中我正在调用应用程序endBackgroundTask.这是实施:
__block UIBackgroundTaskIdentifier task = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
[[UIApplication sharedApplication] endBackgroundTask:task];
task = UIBackgroundTaskInvalid;
}];
dispatch_queue_t queue = dispatch_queue_create("com.test.test1234", DISPATCH_QUEUE_SERIAL);
dispatch_async(queue, ^{
// My Task goes here
});
Run Code Online (Sandbox Code Playgroud)
在某些情况下,我的串行队列有更多要执行的任务,这些任务无法在系统提供的时间内完成.因此,到期块将执行,并且我将结束UIBackgroundTaskIdentifier但不停止调度过程(我甚至无法取消调度).
Apple的文件说:
每次调用beginBackgroundTaskWithName:expirationHandler:或beginBackgroundTaskWithExpirationHandler:方法都会生成一个唯一的令牌以与相应的任务相关联.当您的应用程序完成任务时,它必须使用相应的令牌调用endBackgroundTask:方法,以让系统知道任务已完成.未能为后台任务调用endBackgroundTask:方法将导致应用程序终止.如果在启动任务时提供了过期处理程序,系统将调用该处理程序并为您提供最后一次结束任务并避免终止的机会.
所以,根据这个,如果我不打电话,endBackgroundTask:我的应用程序将被终止,这是好的.
我的问题是:对于我当前的实现,如果我调用endBackgroundTask:expirationHandler块并且我的调度队列的任务没有完成,该怎么办?我的应用程序将被终止或将被暂停?
谢谢
当前景应用程序变为后台时(例如,按下主页按钮),如何在iOS拍摄快照之前更改最顶层视图控制器上的元素并启动动画以显示下一个屏幕?
我问,因为我正在编写一个需要HIPAA合规性的应用程序,我担心操作系统为了制作这个动画而拍摄的快照有时会包含敏感数据,这些数据即使在应用程序获得预防后一瞬间也不应该是可见的.
我知道视图控制器有生命周期方法,例如viewWillDisappear可能可用,但我有很多控制器,我宁愿在我的App Delegate中有一些东西来处理这个(例如通过添加一个不透明的全屏UIImageView覆盖层)而不是必须在每个最后一个控制器中为此编写自定义代码.
我尝试将叠加生成代码放入其中applicationWillResignActive,并且我一直在使用Apple的文档和Google,但它不起作用.我怀疑截图是在应用有机会更新屏幕之前拍摄的.
谢谢!
我一直在倾向于关于背景状态和在iOS中播放音频的权限的所有文档,我无法弄清楚特定的应用程序如何能够在将来的特定时间看起来像是在唤醒自己并播放非捆绑的声音.我正在研究这个问题,因为我想将这个功能(就像我见过的许多其他功能)添加到我正在构建的应用程序中.
有问题的应用程序是"Alarmy" - 以前是"睡觉,如果可以的话".这是一个闹钟.与应用程序商店中的大多数其他闹钟不同,它可以播放iTunes歌曲作为闹钟声音而根本不在前台.它可以绕过响铃/静音开关,将音量增加到最大,并在看似(或应该)处于背景状态时从本地iTunes库播放预选的歌曲.
我不知道有什么方法可以调查Alarmy在等待警报时间时正在做什么,但我可以看到它确实启用了位置服务,启用了蜂窝数据并启用了后台刷新.但是,即使所有这些都在设置中关闭,闹钟仍然有效并播放iTunes歌曲!我必须假设Alarmy在闹钟时间之前不会保持沉默,因为它不会通过Apple的提交过程(或者他们只是错过了这个,并且现在的比赛场地完全不均匀).
它确实有一个看似有点不合适的功能 - 该应用程序显示天气信息.这不一定是完整的毛茸茸 - 我可以看到报警应用程序的一些价值 - 但是它们是否有可能在足够短的时间间隔内查询某些天气API以使应用程序在后台保持清醒直到闹钟时间?如果是,那会是什么样子?此外,天气API可以免费使用一定数量的查询,但它们有很多下载,我承担了很多查询.对于没有IAP的固定价格付费应用程序,这似乎不是一个很好的商业模式.
所以,结束,恕我直言,这个功能不能来自任何背景音频权限,因为应用程序在进入后台时不会主动播放音频(除非它的沉默,他们只是幸运并在提交过程中滑倒); 它可能来自于在后台持续刷新应用程序以获取位置/天气服务(然后通过简单的计时器倒计时到闹钟点火时间),但是当警报禁用后台刷新和位置服务时,该功能仍然有效.可能是权限存在,所以即使不允许应用访问位置信息,iOS仍然允许它在后台处于活动状态?
最后一个想法:是否有一种静音推送技术,他们可能会在事件发生时向应用程序发送通知,并检查是否有时间播放警报音?在黑暗中拍摄......
任何洞察此事都会有所帮助!我把头发拉出来!我可以编辑这篇文章并添加更多信息 - 即我已经看过哪些资源 - 如果你愿意,但我相当确定我已经查看了所有可能的资源.再次,非常感谢任何帮助.
我目前正在计划一个Xamarin.Forms应用程序,在这样做时,我遇到了一个似乎没有答案的观点.
该应用程序必须使用WCF服务来获取其数据,并告诉服务执行某些任务.虽然应用程序处于活动状态,但这样做很容易.但App有一些必须做的事情.在每隔x分钟调用服务以刷新数据并在某些情况下为用户创建通知.我已经阅读了有关iOS中的背景或Android中的服务的内容,但似乎没有办法让Xamarin.Forms应用程序有一种常见的后台工作方式.那么,当应用程序在Xamarin.Forms中处于非活动状态时,如何访问WCF服务并处理数据?
标题可能很神秘。我的问题很简单,我创建了唤醒锁:
pwrMgr.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "wakelock1")
Run Code Online (Sandbox Code Playgroud)
然后我在另一个地方用相同的标签再次执行此操作,我是否获得相同的获取引用唤醒锁?
我正在开发一个iPhone iOS4应用程序,它结合了用户iPod库中播放的音乐.我还想跟踪已播放的歌曲,并能够随机更改歌曲,即使在后台也是如此.所以我设置音乐播放器使用:
[self setMusicPlayer: [MPMusicPlayerController iPodMusicPlayer]];
Run Code Online (Sandbox Code Playgroud)
现在,我希望这个应用程序继续在后台运行和播放音乐,所以我设置:
Required background modes: App plays audio
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是我的应用程序在移动到后台时失去控制权(当调用applicationDidEnterBackground时,即在app开关上).由于我正在使用iPodMusicPlayer音乐继续播放,但我的应用程序无法控制,因此无法跟踪或更改歌曲.
现在,Apple文档声明您的应用程序应该继续使用此必需的背景模式标记在后台执行,但我的应用程序不会.是因为我正在使用MPMusicPlayer吗?有没有办法绕过它?有任何想法吗?
PS.我也试图让远程锁定和多任务iPod控制器与我的应用程序一起工作.我正在使用下面的代码,但是从不调用remoteControlReceivedWithEvent!它适用于MPMusicPlayer吗?我只用AVAudioPlayer看过它.
- (void)remoteControlReceivedWithEvent:(UIEvent *)event {
NSLog(@"remoteControlReceivedWithEvent");
switch (event.subtype) {
case UIEventSubtypeRemoteControlTogglePlayPause:
NSLog(@"Play Pause");
break;
case UIEventSubtypeRemoteControlNextTrack:
NSLog(@"Next");
break;
default:
break;
}
}
- (BOOL)canBecomeFirstResponder {
NSLog(@"canBecomeFirstResponder");
return YES;
}
- (void) viewWillAppear:(BOOL)animated{
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
[self becomeFirstResponder];
}
Run Code Online (Sandbox Code Playgroud) 我有我用屏幕背景的流程.我正在尝试编写一个附加到终端的脚本,执行几个命令,然后分离.问题是当我连接到终端时,屏幕将控制权指向用户.我该如何解决这个问题?