即使在iphone中关闭应用程序也要做一些事情

时间:2012-05-21 09:35:00

标签: iphone ios notifications uilocalnotification

我正在开发iphone应用程序,即使应用程序完全关闭,我也希望每小时开发一个将应用程序内部文件备份到服务器的功能。

我尝试使用NSLocalNotification,但它没有调用方法

- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
在appdelegate中。显示警告框,通知按钮取消和查看,如果我在视图中单击它打开应用程序但不调用该方法。即使用户说取消,也应该调用此方法。

因此,它不会调用Web服务来备份文件。任何人都可以指示我链接哪个也一样。

感谢你, 罗希特·扬卡尔

2 个答案:

答案 0 :(得分:2)

你真的不能做你想做的事。由于iOS不允许应用程序在后台运行,除非它是VOIP客户端,AudioPlayer或跟踪用户位置。

UILocalNotification解决方案的问题是iOS处理通知。当用户点击取消时,您的应用无法获知此信息。您只能处理查看按钮点击。

只有在您运行应用程序或从后台运行还原时才会调用-(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification

如果用户在本地通知上点击查看时系统启动,您需要检查- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions方法中是否有通知:

UILocalNotification *notification = [launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey]; 

if (notification) {
    //handle the notification.
}

答案 1 :(得分:1)

  

我正在开发iphone应用程序,我想开发功能   将应用程序内的文件备份到服务器上   即使申请完全关闭,每小时一次。

如果您正在谈论每隔几个小时将文件备份到您自己的服务器,那么实际上没有办法做到这一点。另一方面,当应用程序没有运行时也应该没有必要这样做 - 如果应用程序没有运行,它不能修改其文件中的数据,也不需要回来起来。相反,只需确保在应用 运行时定期备份数据。

如果您只是想确保应用程序的数据已在某处备份,请考虑使用iCloud。将应用程序设置为使用iCloud后,只要您更新数据,就会备份数据。