【问题标题】:How to manage multitask in iPhone如何在 iPhone 中管理多任务
【发布时间】:2012-01-20 15:01:26
【问题描述】:

当我单击设备上的主页按钮时。这是我的代表的一部分:

- (void)applicationWillResignActive:(UIApplication *)application
{
    NSLog(@"resign active");
    //[[NSThread mainThread] cancel];
}
- (void)applicationDidEnterBackground:(UIApplication *)application
{
    NSLog(@"enter background");
    //[[NSThread mainThread] cancel];
}

- (void)applicationWillEnterForeground:(UIApplication *)application
{
    NSLog(@"enter foreground");
    //[[NSThread mainThread] cancel];
}
- (void)applicationWillTerminate:(UIApplication *)application
{
    NSLog(@"terminate");
    //[[NSThread mainThread] cancel];
}

我使用 NSLog 来了解单击主页按钮时调用的方法。这是控制台的输出。

2012-01-20 15:55:55.853 MyApp[5955:11f03] enter background
2012-01-20 15:55:55.855 MyApp[5955:11f03] terminate
Program ended with exit code: 0

因此,当我在后台单击应用程序(单击两次主页按钮)时,它会再次启动并显示第一个图像,然后是我的第一个 uiviewcontroller。

我可以通过哪种方式解决它,并从用户单击主页按钮时位于顶部的 uiviewcontroller 恢复应用程序?

【问题讨论】:

    标签: ios objective-c uiviewcontroller background-foreground home-button


    【解决方案1】:

    检查您的 info.plist 文件并确保未选中“应用程序不在后台运行”。

    下图显示了处于“开启”状态的选项,因此当用户按下主页按钮时,应用程序实际上已完成。

    这就是Apple describes that option:

    UIApplicationExitsOnSuspend

    UIApplicationExitsOnSuspend (Boolean - iOS) 指定应用程序在退出时应该终止而不是移动到后台。与 iOS SDK 4.0 或更高版本链接的应用程序可以包含此键并将其值设置为 YES 以防止自动选择加入后台执行和应用程序暂停。当此键的值为 YES 时,应用程序将终止并从内存中清除,而不是移至后台。如果此键不存在或设置为 NO,则应用程序将照常移至后台。

    iOS 4.0 及更高版本支持此键。

    【讨论】:

    • 如果我留下类似帖子的代码,NSlog 会告诉我 2012-01-20 16:11:12.170 TrovaChiavi-Pro[6005:11f03] 主动辞职 2012-01-20 16:11:12.172 TrovaChiavi- Pro[6005:11f03] 进入后台,好的,但是当我从后台恢复应用程序时,开始图像继续显示。为什么?
    • 你还在收到“终止”日志吗?
    • 一种解释可能是由于内存不足,您的应用程序在后台被杀死;我建议在didFinishLaunchingWithOptions 中放置跟踪日志,以检查应用程序是否被有效杀死......你看过模拟器中发生了什么吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多