Tom*_*ift 21

我知道这样做的唯一方法并不理想,但它确实有效.

首先,您的应用必须选择退出后台执行(多任务处理)应用程序必须在退出时退出,而不是作为后台任务运行.这是使用plist键UIApplicationExitsOnSuspend完成的.

其次,您的应用需要注册可用于启动应用的自定义URL方案.

第三,你需要一个托管的网页,当加载时会重定向到你应用的自定义URL方案.

第四,用户需要有效的Internet连接.

要退出并重新启动,请在托管重定向网页上调用UIApplication openURL.您的应用将退出,Safari将启动并加载您的页面.该页面将Safari重定向到您的自定义URL方案,提示Safari在内部调用openURL,从而导致iOS启动您的应用程序.

  • 如果你感觉不正常,你可以从你的应用程序本身托管页面(在`-applicationWillTerminate:`中退出大约10秒;在另一个线程中提供它可能更容易,但你也可以同样调用socket( ),bind(),listen(),accept(),write()和close()).让您的应用在您提供页面后终止,并使页面启动您的应用程序有延迟(我认为"刷新"或"重新加载"标题). (3认同)