app在iOS后台时我如何调用Method



我有一个类名myClassCalculate有以下方法

- (void) accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {
NSLog(@"Accelerometer is called");
}

我在

中创建对象
    - (void)applicationDidFinishLaunching:(UIApplication *)application {    

    // Override point for customization after app launch
       myObject = [[myClassCalculate alloc] init];

现在当应用程序进入后台时,我想要这个

    - (void) accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {

我该怎么做才能让这个方法在app后台被调用

谢谢

你不能,只有VOIP,音频和导航应用程序允许在后台运行。因此,如果你的应用程序没有落入其中一个,它将被挂起,并且不会接收任何事件。

更多背景信息:App States and Multitasking

声明应用程序支持的后台任务

对某些类型的后台执行的支持必须在通过使用它们的应用程序推进。应用程序声明支持服务使用它的Info。plist文件。添加UIBackgroundModes键到你的信息。列表文件并将其值设置为包含一个或的数组以下更多字符串:

audio -应用程序在后台向用户播放可听到的内容。(此内容包括使用AirPlay流媒体音频或视频内容。)

location -该应用程序保持用户告知他们的位置,即使它是在后台运行。

voip -该应用程序为用户提供了使用互联网连接拨打电话的能力。

newsstand-content -该应用程序是一个报摊应用程序,下载和处理杂志或报纸的内容在后台。

external-accessory -该应用程序与硬件附件一起工作,需要定期提供更新。

在今年的WWDC上,他们说加速度计的更新可以在后台观察到,但我不确定如何做到这一点。我想应该只支持iOS 5。

要执行后台任务,您需要将它们添加到您的信息中。UIBackgroundModes键中的plist。这是目前可用的。

音频应用程序在后台播放可听到的内容。

位置应用程序向用户提供基于位置的信息,并要求使用标准位置服务(与显著更改位置服务相对)来实现此功能。

网络电话该应用程序提供ip语音服务。具有此密钥的应用程序在系统启动后自动启动,以便应用程序可以重新建立VoIP服务。使用此键的应用程序也可以播放背景音频。

newsstand-content该应用程序使用Newsstand Kit框架在后台处理最近下载的内容,以便在用户需要时准备好内容。此值在ios5.0及以上版本中支持。

external-accessory应用程序与定期发送数据的附件通信。

尝试在plist中放置位置或使用[UIApplication beginBackgroundTaskWithHandler:]此值在iOS 5.0及更高版本中支持。

当应用程序进入后台时,这个方法被称为onUserLeaveHint()

相关内容

  • 没有找到相关文章

最新更新