回答
我知道这样做的唯一方法是不理想的,但它的工作原理。
首先,您的应用程序必须退出后台执行(多任务处理)退出时应用程序必须退出,而不是作为后台任务运行。这是通过plist键UIApplicationExitsOnSuspend完成的。
其次,您的应用需要注册一个可用于启动应用的自定义URL方案。
第三,您需要一个托管在某个地方的网页,这个网页在加载时会重定向到您应用的自定义URL方案。
第四,用户需要一个活动的Internet连接。
要退出并重新启动,请在托管重定向网页上调用UIApplication openURL。您的应用将退出,Safari将启动并加载您的页面。该页面将Safari重定向到您的自定义URL方案,提示Safari在内部调用openURL,导致iOS启动您的应用程序。
如果你感觉不正常,你可以从你的应用程序本身托管页面(你可以在'-applicationWillTerminate:'中退出约10秒钟;在另一个线程中服务它可能更容易,但是你也可以调用socket (),bind(),listen(),accept(),write()和close())。让您的应用在您提供该页面后终止,并让页面延迟启动您的应用(我认为是“刷新”或“重新加载”标题)。 – 2010-11-21 22:27:20
你甚至不需要设置UIApplicationExitsOnSuspend;你只需要调用exit()。在-beginBackgroundTaskWithExpirationHandler中包装“服务器”:确保您的应用获得足够的CPU时间来提供服务,然后您可以睡500毫秒(以“确保”发送数据)和退出()。复杂的一点是解析请求,但你可以通过睡眠500毫秒并读入一个大的(8K)缓冲区,或者(如果你感觉冒险)选择+读取500毫秒。 – 2011-09-08 14:55:16
有趣......但可怕的解决方案! – KiNG 2014-06-09 09:52:19
除非你对越狱的设备开发,苹果公司甚至不会让你以编程方式终止您的应用程序。因此重新启动设备是不可能的。
我认为Alexei是指重新启动应用程序,而不是设备。当然,重新启动后者远远不是问题。 – 2010-11-21 17:35:06
当然你可以调用exit()或kill(),或者直接从main()或其他各种东西(比如abort())返回。这与崩溃无法区分,并且可能会因此导致Apple拒绝您的应用。 – 2010-11-21 18:05:11
什么意思是从main()返回?我解决问题添加退出()按钮应用程序。我需要它,因为第一次和第二次测量总是不同的。 – 2010-11-22 06:46:41
我的帖子,你链接到指的是可可应用程序,而不是iOS。在iOS上,您可以使用exit(0);
退出应用程序(但Apple不喜欢这样),但我不建议这样做。虽然你不能重新启动iPhone应用程序。
你AppDelegate
实例有一个方法
(void)applicationDidBecomeActive:(UIApplication *)application
{
}
在这里,你可以把逻辑弄清楚,如果应用程序应重新启动,或继续做什么它在做什么。例如,您可以开始使用BOOL
变量appMustRestart
,即false
,但在您的应用程序中发生某些事情时,您希望下一次成为新的重新启动时触发为true。
if (appMustRestart)
{
[self resetVars]; // call a method that resets all your vars to initial settings
// INSERT CODE HERE TO TRANSFER FOCUS TO INITIAL VIEWCONTROLLER
}
- 1. 如何在iOS中以编程方式重新启动或重新加载iPhone应用程序
- 2. 如何以编程方式重新启动java web启动应用程序
- 3. 以编程方式重新启动应用程序?
- 4. 以编程方式重新启动android应用程序
- 5. 以编程方式重新启动应用程序?
- 6. 以编程方式重新启动应用程序崩溃
- 7. 以编程方式重新启动离子应用程序
- 8. 通过AppDelegate以编程方式重新启动iphone应用程序
- 9. iOS:如何以编程方式更改应用程序语言而无需重新启动应用程序?
- 10. 如何在Android中崩溃时以编程方式重新启动/重新启动应用程序?
- 11. 如何以编程方式重新启动单实例应用程序
- 12. 以编程方式重新启动IIS
- 13. 我能否以编程方式重新启动iPhone应用程序以在Swift中应用语言更改
- 14. 以编程方式重新启动Windows应用商店应用程序
- 15. 如何以编程方式启动iOS/IPAD上的隐藏应用程序?
- 16. 如何以编程方式更改应用程序语言无需重新启动我的应用程序?
- 17. 如何以编程方式启动挂架Web应用程序?
- 18. 如何以编程方式启动Facebook应用程序?
- 19. 如何以编程方式启动应用程序?
- 20. 如何以编程方式启动JNLP应用程序?
- 21. 如何通过编码重新启动IOS应用程序?
- 22. 重新启动iPhone应用程序
- 23. iPhone应用程序重新启动?
- 24. 重新启动Iphone应用程序
- 25. iOS如何从设置应用程序以编程方式启动WIFI页面?
- 26. 我的应用程序在4.1 iOS上重新启动iPhone
- 27. ASP.NET Core 1.0/MVC 6以编程方式重新启动应用程序
- 28. 以编程方式崩溃后重新启动应用程序 - Android
- 29. 你能以编程方式重新启动一个j2ee应用程序吗?
- 30. 以编程方式启用应用程序的市场更新
不这样做。为了上帝的爱。 – 2010-11-21 18:08:10
那么你有报价的例子是可可应用程序不适用于可可触摸(iOS)应用程序。其次,它不可能在iOS上重新启动你的应用程序。 – itsaboutcode 2010-11-21 21:09:22
当然,真正的问题是:你为什么想要? – 2010-11-21 22:22:50