Objective c 功能';使用选项完成启动';被不适当地调用

Objective c 功能';使用选项完成启动';被不适当地调用,objective-c,ios,xcode,cordova,Objective C,Ios,Xcode,Cordova,我正在使用cordova 2.1.0进行IOS应用程序开发。 我将IOS设备连接到MAC处理器,并安装/初始化在xcode中运行的应用程序,或将其从itunes文件夹中拖动。现在,我物理上断开了设备与处理器的连接,并通过设备中启用的wifi,通过APN向设备发送通知/消息。我能够在设备中成功接收通知。现在,一段时间后,我将设备重新连接到处理器,这导致应用程序再次启动并再次调用“didFinishLaunchingWithOptions”方法的问题,这是不可取的,因为启动/初始化应该只发生一次。这

我正在使用cordova 2.1.0进行IOS应用程序开发。 我将IOS设备连接到MAC处理器,并安装/初始化在xcode中运行的应用程序,或将其从itunes文件夹中拖动。现在,我物理上断开了设备与处理器的连接,并通过设备中启用的wifi,通过APN向设备发送通知/消息。我能够在设备中成功接收通知。现在,一段时间后,我将设备重新连接到处理器,这导致应用程序再次启动并再次调用“didFinishLaunchingWithOptions”方法的问题,这是不可取的,因为启动/初始化应该只发生一次。这种行为是随机的,即每次我断开/重新连接时,它都不会发生,只是有时会发生。为什么会发生这种情况。这种随机行为的原因可能是什么


任何帮助都将不胜感激。谢谢

使用选项完成启动:
将在每次启动应用时调用。当您从Xcode运行应用程序并断开设备连接时,它会终止应用程序。因此,当您在设备断开连接的情况下启动应用程序时,它会再次启动应用程序,并在应用程序完成启动时调用
didfishlaunchingwithoptions:
。如果您从Xcode运行应用程序,并以相同的方式再次运行,也会发生同样的情况

编辑:


不确定是否清晰,但
didfishlaunchingwithoptions:
不会被调用,如果你退出应用程序(按home按钮)并在不关闭它的情况下调用它。

因此,根据你的说法,即使我连接设备充电,它也应该再次调用“didfishlaunchingwithoptions”功能并再次启动应用程序。如果你在Xcode中运行,断开连接、重新连接(或不连接)并从设备启动应用程序(触摸跳板上的图标),它会调用。如果您在Xcode中运行,断开连接,重新连接并在Xcode中运行,它会调用。基本上,正如我所说,每次应用程序“启动”时都会调用它。应用程序在先前终止时已“启动”。当您从Xcode运行并断开设备连接时,当您退出应用程序并在多任务栏中手动终止应用程序时,当您重新启动时,或者当设备内存不足时,它将终止。我希望它现在更清楚了,是吗?我有一些什么,看在xcode中运行只适合我作为一个开发人员。一天结束时,终端用户必须从itunes下载或从MAC machine(设备已连接)中的itunes文件夹中拖动。因此,在这两种情况下,它不应该再次启动。否则,它就达不到目的。我如何确保在这些场景中,它不会再次启动。用户将通过iTunes安装它,它将出现在他的springboard上。当他第一次发射时,didFinishLaunchingWithOptions:将被调用。当他完成应用程序后,他将退出它(单击home按钮)。如果他在几分钟后返回应用程序,它将不会被调用。但是如果他停止使用它更长的时间(比如说一周),这个应用程序很可能会被操作系统杀死。当他再次启动时,didFinishLaunchingWithOptions:将再次被呼叫。这不是bug,而是应用程序的运行方式。[没有空间了,新评论]如果你想在首次发布时发生什么事情,请看那边:你应该阅读苹果的iOS编程指南,真正了解应用程序的生命周期。