【发布时间】:2011-11-30 17:09:04
【问题描述】:
当我关闭我的应用程序(通过 HOME 按钮)并再次打开它时,我如何强制应用程序从最开始的视图重新启动,而不是从显示的最后一个位置(在它关闭之前)重新启动?是项目中的设置吗?
【问题讨论】:
标签: iphone xcode uiviewcontroller
当我关闭我的应用程序(通过 HOME 按钮)并再次打开它时,我如何强制应用程序从最开始的视图重新启动,而不是从显示的最后一个位置(在它关闭之前)重新启动?是项目中的设置吗?
【问题讨论】:
标签: iphone xcode uiviewcontroller
将应用的 info.plist 键:UIApplicationExitsOnSuspend 设置为 True。
【讨论】:
查找来自手机的通知,让您知道手机“变为活动状态”,只有在应用程序运行时才会发生这种情况,然后发送到后台,然后再次拉起。 一旦您知道它再次变为活动状态,您就可以推送您的主页视图。
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification {
if (application.applicationState == UIApplicationStateInactive ) {
//application has been sent to the background
}
if(application.applicationState == UIApplicationStateActive ) {
//The application has become active an alert view or do something appropriate.
//push home view here.
}
}
【讨论】:
这是由多任务造成的,即应用程序未正确退出。
为确保它弹回,请在applicationWillEnterForeground 中尝试此操作,如下所示:
- (void)applicationWillEnterForeground:(UIApplication *)application
{
[self.navigationController popToRootViewControllerAnimated:NO];
}
或者一种非常快速而肮脏的方法,是在应用程序进入后台时实际退出(注意这可能不是最好的方法)。
- (void)applicationDidEnterBackground:(UIApplication *)application
{
[[NSThread mainThread] exit];
// OR
exit(0);
}
【讨论】:
[[NSThread mainThread] exit];