有没有办法强制ios 4应用程序关闭并重新打开自己?

时间:2011-01-04 17:39:06

标签: ios ios4

我正在处理的应用程序在传播设置时出现问题,但一旦关闭并重新打开,它似乎工作正常。这是一个闹钟应用程序,因此它不会受益于多任务处理。由于我使用NSUserDefaults保存相关设置,因此我关闭了多任务处理:

@implementation MyAppDelegate

- (void) applicationDidEnterBackground:(UIApplication *)application {
      exit(0);

}
...
@end 

因此,此时用户必须手动关闭并重新打开应用程序。是否有可以发送的命令使应用程序关闭并重新打开(自动)?如果在屏幕上删除设置视图控制器时更改了某些设置,我希望该应用关闭并重新打开。

2 个答案:

答案 0 :(得分:6)

您应该解决问题的根源,而不是强制您的应用程序在退出时关闭,这是一种糟糕的用户体验。

如果您在应用程序中设置了拒绝传播的设置问题,请尝试使用

[[NSUserDefaults standardUserDefaults] synchronize];

将设置刷新到磁盘。

如果您遇到的问题是在应用程序处于后台时在“设置”应用程序中更改了设置,请在应用程序中添加一个侦听这些设置中的更改的观察者:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleChangeInUserSettings:) name:NSUserDefaultsDidChangeNotification object:nil];
如果某些内容发生了变化,当您的应用程序返回到前台时,将触发

。在此方法中,更新您的用户界面或应用程序的其他方面,需要使用更新的设置进行调整。

答案 1 :(得分:5)

不,您无法强制应用重启。在代码中使用exit()会违反Apple HIG。

为了达到你想要的效果,我建议在更改设置时向用户显示警告,然后建议设置将在下次启动时生效。

您应该通过将UIApplicationExitsOnSuspend添加到info.plist并将其设置为true来禁用多任务处理。

相关问题