Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/112.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 短期项目与应用程序的性能调用顺序将进入前台_Ios_Objective C_3dtouch - Fatal编程技术网

Ios 短期项目与应用程序的性能调用顺序将进入前台

Ios 短期项目与应用程序的性能调用顺序将进入前台,ios,objective-c,3dtouch,Ios,Objective C,3dtouch,因此,我有一个具有服务器状态的应用程序,我通过超时值刷新它,并检查应用程序中的超时是否将进入前台,如果超时已过期,则重新加载。 到目前为止,这种方法一直运作良好 现在我想实现新的强制触摸快捷操作,以执行服务器操作。但是,我不希望状态获取操作与快捷操作同时发生。当通过快捷方式启动应用程序时,这不是问题,但当从非活动->活动转换时,我可能会在应用程序中启动一个服务器操作,然后在PerformationForShortcutItem中启动另一个服务器操作,这不是最佳操作 我所追求的是,只有当应用程序因

因此,我有一个具有服务器状态的应用程序,我通过超时值刷新它,并检查
应用程序中的超时是否将进入前台,如果超时已过期,则重新加载。
到目前为止,这种方法一直运作良好

现在我想实现新的强制触摸快捷操作,以执行服务器操作。但是,我不希望状态获取操作与快捷操作同时发生。当通过快捷方式启动应用程序时,这不是问题,但当从非活动->活动转换时,我可能会在
应用程序中启动一个服务器操作,然后在
PerformationForShortcutItem
中启动另一个服务器操作,这不是最佳操作

我所追求的是,只有当应用程序因强制触摸按键而未(重新)启动时,才有可能刷新我的状态

我想我可以通过一个bool来解决这个问题,“isHandlingShortcut”,我在
performationforShortcutItem
中设置,然后签入
applicationWillEnterForeground
,在这种情况下跳过我的刷新-但结果它不起作用,因为首先调用了
applicationWillEnterForeground

我有没有办法通过
应用程序willenterforeground
中的快捷方式发现我(重新)启动了应用程序


编辑:也许我可以将我的“刷新”逻辑移到
applicationIDbecomeactive
?根据文档,在短时间项目的执行之后调用该函数:

[…]在启动时检查您的应用程序是否通过快捷方式启动 行动。在您的计算机中执行此检查 应用程序:将使用选项完成启动:或 application:didFinishLaunchingWithOptions:method通过检查 UIApplicationLaunchProctionsShortcutItemKey启动选项键。这个 UIApplicationShortcutItem对象作为 启动选项键

我所做的是检查
did finishlaunchingwithoptions
中的快捷方式,以便稍后在
performationforshortcutitem
中我知道是由于快捷方式启动了应用程序还是应用程序已经启动了

didfishlaunchingwithoptions
中(如果应启动应用程序,则执行):

以及稍后在
短期项目的性能中

if (self.launchShortcutItem) {
    // app launched due to shortcut
} else {
    // app was already launched
}
if (self.launchShortcutItem) {
    // app launched due to shortcut
} else {
    // app was already launched
}