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

Mir*_* H. 0 ios4 ios

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

@implementation MyAppDelegate

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

}
...
@end 
Run Code Online (Sandbox Code Playgroud)

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

Bra*_*son 6

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

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

[[NSUserDefaults standardUserDefaults] synchronize];
Run Code Online (Sandbox Code Playgroud)

将设置刷新到磁盘.

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

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleChangeInUserSettings:) name:NSUserDefaultsDidChangeNotification object:nil];
Run Code Online (Sandbox Code Playgroud)

如果某些内容发生了变化,当您的应用程序返回到前台时将触发该操作.在此方法中,更新您的用户界面或应用程序的其他方面,需要使用更新的设置进行调整.


Mos*_*she 5

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

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

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