问题标签 [uibackgroundtask]

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.

0 投票
1 回答
2394 浏览

ios - 在 ios 中发送通知,例如没有 APNS 服务器的推送通知,

我想在没有任何 APNS 服务器和设备令牌的情况下发送推送通知,比如 android 没有本地和推送通知,但他们可以在没有谷歌权限的情况下向设备发送设备。

0 投票
1 回答
122 浏览

ios - 在后台使用 NSFetchedResultsController 自动 UITableView

我正在尝试确定一个使我的应用程序崩溃多年的错误。然而,我花了很长时间来缩小原因,我想我(几乎)有它。如果应用程序进入后台,它会运行一个后台任务来清理数据库,并在两个月后删除文章订单。

如果碰巧有符合条件的文章,并且 UITableView 打开并显示此特定列表,则应用程序崩溃,因为查询NSFetchedResultsController结果经常出现以下错误:

或者有时:

调用时:(_objects 是 NSFetchedResultsController)

由触发

所以我想知道这是否是因为NSFetchedResultsController当应用程序退出活动时(在主线程上)对后台任务/线程不可用(正确)。这是解释吗?如果是这样,我如何防止这种正确的形式发生?

我可以阻止合并更改,但是当应用程序返回前台时ManagedObjectContect,如何确保它已更新,并且更改反映在 中?UITableView

只是一个理论。我知道崩溃发生在后台进程中,但还没有更多。当应用程序处于活动状态时,更新、删除、删除工作正常。

更新代码更正:后台进程的调用

清理现在在一个单独的线程中正确进行,并且通知被发送到主线程,但仍然是同样的问题。

0 投票
4 回答
1905 浏览

android - 根据后台线程结果更改 android UI

我正在开发一个需要根据后台线程处理结果进行UI更改的android应用程序,我首先尝试了以下代码:

但是我的应用程序崩溃了,因为我试图从该后台线程进行UI更改,然后我尝试了这种方式:

但我得到了那个例外:

在搜索之后,我发现我必须运行代码AsyncTask以避免这些问题,但是当尝试使用它时,我发现它只能用于小任务,而不是像在所有run_time后台运行的线程一样。

那么,在整个run_time中在后台运行线程或任务并反映它对UI的更改的最佳日子是什么时候。

0 投票
4 回答
3297 浏览

ios - 通过静默推送通知 LocationManager 的 startUpdatingLocation

我正在创建需要在特定时间在后台唤醒的应用程序。

我努力了 :

  1. UILocalNotification :但我不想使用UILocalNotification因为它需要用户交互才能点击通知,而不仅仅是应用程序会唤醒并启动位置管理器。

  2. 我还使用[locationManager startUpdatingLocation];了启用背景模式位置更新,这是可行的,但它会消耗大量电池。

因此,使用新的 iOS 7 功能Silent pushNotificationdidReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:方法我需要在后台启动位置管理器,

静默推送通知正常工作,

PushNotification 的负载:

但这不会启动位置管理器,请有人帮助我。

编辑:

如果不可能,请给我一些建议。

0 投票
3 回答
2238 浏览

ios - 几秒钟后,应用程序在 ios7 中被操作系统杀死 - 编辑

我正在为iOS 7创建基于导航的应用程序,为此我正在获取用户位置数据,使用 CoreLocation 框架,

应用程序要求是在特定时间开始在后台获取用户位置,为此我已经使用didReceiveRemoteNotification fetchCompletionHandler:方法实现了 Silent Pushnotification,

我已经成功地实现了这个 Using Silent Pushnotification & it CallstartUpdatingLocation并且我能够在委托方法中获取位置数据:

使用此有效负载:

{"aps" : {"content-available" : 1},"SilentPush" : "4"}

我为后台模式启用了location& :remote notification

在此处输入图像描述

didUpdateLocations

但问题是:

几秒钟后,位置类的委托方法停止,如果设备正在移动,它不会发送任何数据,当我将应用程序与前台交谈时,它会调用“didFinishLaunhing”方法,所以我猜即使位置正在更新,操作系统也会杀死应用程序,在Diagnostics & usage我收到以下崩溃报告的设备:

昨天我问了这个问题,现在我可以通过推送通知在后台启动位置管理器,

所以请任何人都可以解决这个问题。

谢谢你。

注意: 如果我在调试模式下运行应用程序,意味着我通过 XCode 运行应用程序并且不停止它或不断开连接,应用程序将运行。在这种情况下,应用程序不会被操作系统停止。

编辑 1

根据@Stephen Darlington 的回答,如果我删除了所有的 backgroundfacher 之类的,

现在应用程序甚至不会调用didUpdateLocations一次,:(

我应该用这种方法写什么?

Edit 2

根据Apple Doc说:

If your app is suspended or not running, the system wakes up or launches your app and puts it into the background running state before calling the method.

那么,只要我启用了位置背景模式,应用程序是否应该在后台运行?

0 投票
1 回答
467 浏览

objective-c - 调度调用到 UIBackgroundTaskIdentifier 内的主队列

我正在运行某个任务,UIBackgroundTaskIdentifier因为我想在后台运行它。我的代码看起来像这样。

所以我有两个问题。

  1. 如果我的应用程序在进行某些处理时进入后台,对主队列的 dispatch_async 调用会发生什么?
  2. 这是一个好的设计吗?
0 投票
1 回答
1329 浏览

ios - 从 iOS 在后台向服务器发送位置坐标

我正在开发一个需要将用户位置发送到服务器的应用程序。我必须每秒更新用户位置并将其从后台发送到服务器。

我能够在后台获取位置坐标,但是如何每秒将其发送到服务器?请帮我。

我发现这是在一个应用程序中工作 - UBER

0 投票
2 回答
911 浏览

ios - 即使将 enableBackgroundingOnSocket 设置为 TRUE,XMPPFramework 也不会在后台发送保持活动状态

我认为标题足以说明问题。我想XMPPFramework在后台工作(如服务),即使应用程序未处于活动状态也能接收消息。我已经设定

xmppStream.enableBackgroundingOnSocket = YES;

但这里没有进展。该应用程序进入后台,它仍然会在几秒钟内接收消息(并显示通知),但如果它在几秒钟内处于非活动状态(并且也空闲(没有传入消息)),它将不再在后台工作。我尝试记录并看到应用程序在收到最后一条消息(最后一个活动)后几秒钟内发送保持活动数据包,但如果有一段时间没有活动,它会停止发送保持活动并且应用程序不会'不再被通知和工作了。以防万一,我已将“保持活动发送间隔”设置为 5 秒。

我非常感谢任何快速帮助。

非常感谢

0 投票
3 回答
1520 浏览

ios - 当应用程序在后台被杀死时删除数据。

我有一个正在保存数据的应用程序,但是当应用程序在后台被终止时,我必须删除所有保存的数据。

我尝试使用这种方法:

但它不起作用。有人可以建议我怎么做吗?

0 投票
1 回答
41 浏览

linux - 后台Linux任务完成

我有一个完成并打印的 Linux 任务:

我注意到过去它会打印:

+和有什么区别-吗?