iOS-我的应用第二次启动会在后台自动运行

时间:2018-11-08 10:25:24

标签: ios iphone swift

当我从Xcode启动我的应用程序时,该应用程序可以正常运行,但是如果我关闭然后再次打开该应用程序,它会自动进入后台而不受控制。如何解决此错误?

1 个答案:

答案 0 :(得分:0)

有些崩溃类型是通过Xcode运行应用程序时不会发生的。

例如: 如果应用启动时间过长,则该应用将崩溃。基本上,这不是崩溃,但是应用需要快速启动,并且操作系统不会期望延迟。

因此,您需要确保在应用启动期间不要对Main Thread进行任何繁琐的操作,尤其是在AppDelegate

中的以下方法上
func application(_ application: UIApplication, willFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {

// Avoid heavy loads on main thread here
    return true
}

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

// Avoid heavy loads on main thread here
    return true
}

几年前,当我尝试向我的NSObject类添加目标c结构而不分配结构变量的内存时,我也遇到了崩溃。但是当我通过Xcode运行我的应用程序时,此崩溃无法重现,仅当我在没有Xcode的情况下启动应用程序时才发生。因此,在没有崩溃的情况下,我将该结构变量用作指针,并像(BoothStructure*)malloc(sizeof(BoothStructure) * count)一样进行了内存分配。

因此,请同时使用崩溃日志分析崩溃,并检查它是否符合上述任何一种情况。

要检查开发版本的崩溃日志: 打开Xcode->连接已崩溃的应用程序的iOS设备->窗口->设备和模拟器->查看设备日志

要检查生产版本的崩溃日志(您应在用于发布应用的Xcode中添加开发者帐户): 打开Xcode->窗口->管理器->从应用程序列表中选择您的应用程序->在顶部的分段控制器中选择崩溃选项卡->选择您的构建版本。