问题标签 [backgrounding]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - 使用越狱调整/脚本将新的 UIBackgroundMode 添加到 App-Store 应用程序
我制作了一个App-Store 应用程序,现在想做一个调整,让它使用 VoIP UIBackgroundMode(保持套接字打开)在后台运行。UIBackgroundModes 存储在 Info.plist 文件中。
在 Cydia 中为我的应用程序提供 VoIP UIBackgroundMode 的最佳方式是什么?它只是一个更改应用程序的 Info.plist 文件的脚本(假设这不会破坏应用程序的签名并导致问题),还是有一个我可以通过调整覆盖的功能?
(我假设无论哪种方式,我都可以在我的应用程序代码中进行必要的最小更改以使用此 UIBackgroundMode(仅在实际设置模式时执行)并且 Apple 不会检测到这一点。我已经使用 VoIP 提交了我的应用程序UIBackgroundMode 处于活动状态并被 Apple 拒绝。删除它和相应的代码后,应用程序被接受。)
ios - 即使将 enableBackgroundingOnSocket 设置为 TRUE,XMPPFramework 也不会在后台发送保持活动状态
我认为标题足以说明问题。我想XMPPFramework
在后台工作(如服务),即使应用程序未处于活动状态也能接收消息。我已经设定
xmppStream.enableBackgroundingOnSocket = YES;
但这里没有进展。该应用程序进入后台,它仍然会在几秒钟内接收消息(并显示通知),但如果它在几秒钟内处于非活动状态(并且也空闲(没有传入消息)),它将不再在后台工作。我尝试记录并看到应用程序在收到最后一条消息(最后一个活动)后几秒钟内发送保持活动数据包,但如果有一段时间没有活动,它会停止发送保持活动并且应用程序不会'不再被通知和工作了。以防万一,我已将“保持活动发送间隔”设置为 5 秒。
我非常感谢任何快速帮助。
非常感谢
c# - Xamarin Android 后台指导
我感谢所有在我最后一个问题上帮助过我的人。我已经阅读了很多关于 Android 编程和后台任务的内容,我对此图有一些疑问:http: //docs.xamarin.com/guides/cross-platform/application_fundamentals/backgrounding/part_9_android_backgrounding_guidance/Images/image22.png
根据图表,如果我想在 Activity 上执行清理任务,我应该在“OnPause”事件中将它们删除,但要使其快速:如果它花费了很长时间,它会冻结布局吗?我的应用程序是否有可能在清理完成之前被强制完成?
为什么我不想在后台运行 Activity 上的任务?起初我以为这是因为它会停止工作,但我发现如果我不停止我的代码,它会继续运行,但事实并非如此。如果即使我的活动是后台的,我也可以继续执行任务,我为什么要使用服务?
在图中的远程服务分支的情况下:Messenger 除了向服务发送消息之外还有什么用途?我可以使用消息从服务中接收信息,还是需要其他方式从服务中获取答案?
另一个关于远程的:我读到提到的 AIDL 目前 Xamarin 不支持,我该如何实现它?
在启动长时间运行的任务的情况下:我应该使用服务以确保完成我的任务?
如何在设备启动时启动服务?
如果Android强制重启一个粘性服务:绑定到它的所有对象仍然被绑定?还是我必须再次绑定它们?
我可以将对象发送到服务吗?
我知道,很多问题。他们中的大多数都是我的老板问的,所以我想给他最好的答案。
提前致谢!!!
[编辑:20140320] 一些答案,如果我错了,请告诉我。
如果认为合适,Android 可以销毁后台活动。
与 1 相同
你们有没有一个在 Xamarin 中使用 Server Messengers 的好例子?
猜猜它与 1 和 2 相同。如果 Android 认为合适,后台的 Activity 将被销毁。服务可以比调用活动存活更多。
ios - 应用程序“Alarmy”能够从后台状态播放 iTunes 歌曲...如何?
我一直在翻阅有关在 iOS 中播放音频的背景状态和权限的所有文档,但我无法弄清楚特定应用程序如何能够在未来的特定时间看似唤醒自己并播放非捆绑的声音。我正在研究这个问题,因为我想将此功能(就像我见过的许多其他功能一样)添加到我正在构建的应用程序中。
有问题的应用程序是“Alarmy”——以前是“如果可以就睡觉”。这是一个闹钟。与应用商店中的大多数其他闹钟不同,它可以播放 iTunes 歌曲作为闹钟声音,而无需在前台运行。它可以绕过响铃/静音开关,将音量增加到最大,并在看似(或应该)处于后台状态时播放本地 iTunes 库中预选的歌曲。
我不知道有什么方法可以调查 Alarmy 在等待闹钟时间时在做什么,但我可以看到它确实启用了定位服务、启用了蜂窝数据并启用了后台刷新。但是,即使在设置中关闭了所有这些功能,闹钟仍然可以正常工作并播放 iTunes 歌曲!我还必须假设 Alarmy 在闹钟时间之前不会保持沉默,因为它不会通过 Apple 的提交过程(或者他们可能只是错过了这一点,而且现在竞争环境完全不平衡)。
它确实有一个看起来有点不合适的功能——应用程序显示天气信息。这不一定是完全的绒毛——我可以看到警报应用程序的一些价值——但是他们是否有可能以足够短的时间间隔查询一些天气 API 以使应用程序在后台保持清醒直到警报时间? 如果是,那会是什么样子?此外,天气 API 最多可以免费使用一定数量的查询,但它们有很多下载量,我假设有很多查询。对于没有 IAP 的固定价格付费应用,这似乎不是一个很好的商业模式。
所以,总结一下,恕我直言,这个功能不能来自任何背景音频权限,因为应用程序在进入后台时不会主动播放音频(除非它的沉默,他们只是幸运地通过了提交过程);它可能来自于在后台不断刷新应用程序以获取位置/天气服务(然后通过一个简单的计时器倒计时到警报触发时间),但当为警报禁用后台刷新和位置服务时,该功能仍然有效。难道是权限在那里,所以即使不允许应用程序访问位置信息,iOS 仍然允许它在后台处于活动状态?
最后一个想法:是否有一种静默推送技术,他们可能会在事件发生时将通知推送到应用程序并检查是否到了播放警报音的时间?在那黑暗中拍摄...
对此事的任何见解都会有很大帮助!我要拔头发了!我可以编辑这篇文章并添加更多信息——即我已经看过哪些资源——如果你愿意的话,但我很确定我已经看过所有可能的资源。再次,非常感谢您的帮助。
ios - 在 iOS 7 上接收远程通知(静默推送)时执行后台任务
我目前正在构建一个应用程序,该应用程序利用 iOS 7 的静默推送通知来根据请求在后台唤醒应用程序。
正如我会做的那样,-applicationDidEnterBackground:
我启动了一个后台任务,-application:didReceiveRemoteNotification:fetchCompletionHandler:
如下所示:
虽然该应用程序成功注册了远程通知并-application:didReceiveRemoteNotification:fetchCompletionHandler:
在通知到达时被调用,但该应用程序在返回挂起状态之前仅在后台停留几秒钟,远短于给定的预期执行时间(在调用时-applicationDidEnterBackground:
),我认为大约是 3 分钟。
这是预期的行为吗?还是不能使用远程通知?
c# - 让 Android 应用程序在后台运行,防止它停止/死亡
我创建了一个应该在后台继续工作的应用程序。这似乎在一段时间内可以正常工作,但是如果我长时间不使用手机,我会发现它已经停止工作,并且在打开它时会再次启动。
我所有的搜索都让我找到了关于如何让我的应用程序在后台运行的帖子,这很好(我基本上只是从 Xamarin 教程中提取了整个部分),但由于某种原因,它决定在一段时间后停止。
有什么方法可以强制/确保应用程序将继续在后台运行?
ios - 用于后台文件传输的 GCDWebServer 处理程序(不是 GCDWebUploader)
是否有人已经尝试在不使用包含的(并且很酷的)GCDWebUploader 的情况下为 GET 请求(POST 方法的相同问题)实现处理程序?
我需要服务器响应http://local/download/filename.ext
将文件上传到客户端的 GET 请求。
我使请求符合代码“BackgroundSessionManager”(可在此处获得:AFNetworking 2.0 和后台传输),它被发送并触发,不用担心。
我得到服务器端的日志是这样的:
我无法弄清楚如何设置处理程序以便不关心从 JSON 解析的不存在的查询。
ios - beginBackgroundTaskWithExpirationHandler 调用 endBackgroundTask 但未结束进程
即使应用程序在后台运行,我也想运行一些长时间运行的进程。我正在调用应用程序的beginBackgroundTaskWithExpirationHandler:
方法,并且在 expireBlock 中我正在调用应用程序的endBackgroundTask
. 这是实现:
在某些情况下,我的串行队列有更多任务要执行,这些任务无法在系统提供的时间内完成。所以到期块将执行,并且我正在结束UIBackgroundTaskIdentifier
但没有停止调度过程(我什至不能取消调度)。
苹果的文件说:
对 beginBackgroundTaskWithName:expirationHandler: 或 beginBackgroundTaskWithExpirationHandler: 方法的每次调用都会生成一个唯一的令牌以与相应的任务相关联。当你的应用完成一个任务时,它必须调用 endBackgroundTask: 方法并带有相应的令牌,让系统知道任务已经完成。未能为后台任务调用 endBackgroundTask: 方法将导致您的应用程序终止。如果您在启动任务时提供了过期处理程序,系统会调用该处理程序并给您最后一次机会来结束任务并避免终止。
所以,根据这个,如果我不调用endBackgroundTask:
我的应用程序将被终止,这没关系。
我的问题是:在我当前的实现中,如果我endBackgroundTask:
在 expireHandler 块中调用并且我的调度队列的任务没有完成怎么办?我的应用程序将被终止或将被暂停?
谢谢
python - 允许在 bash 脚本中后台运行 django runserver 命令后运行命令?
我正在编写一个“简单”脚本来启动 django 服务器,然后在我开发时启动 Firefox。
我已经看到了这个</dev/null &
技巧,并且可以在命令行上使用。但是当我在我的脚本中使用它时,它仍然挂在启动的服务器上。Backgrounding withctrl-z和bg
命令仅使脚本背景化,而不是命令背景化。
有没有办法让 django 传递一个“不要占用输入”标志?或者我可以在脚本中以某种方式将它作为背景,而不是放在&
它的末尾?或者只是告诉脚本不要在单独的会话中运行它?
这是我的完整脚本(它充满了硬核丑陋,如果我能让它工作,它可能会得到美化):
perl - 从另一个环境调用 Perl 在后台
我有一个应该在后台做一些工作的 Perl 脚本。这很好地描述了 - 我分叉,杀死(返回0)父母并在孩子身上完成工作。当我直接从外壳运行它时,它按预期工作(即在杀死父级后立即返回外壳并继续在后台运行)。但是如果我从另一个环境运行它,例如从 PHP 通过执行
孩子完成后它返回到外壳。任何想法为什么会发生这种情况?
谢谢!
编辑:这是我使用的 Perl 代码:
直接执行时的输出:
通过 PHP 执行时的输出:
我的问题是为什么 Perl 脚本在从其他环境调用时不会断开连接(这里 PHP 只是一个示例)。
谢谢!