当互联网不可用时关闭应用程序

时间:2011-11-04 00:08:45

标签: ios objective-c

我想在没有互联网连接时关闭我的应用程序。

我检查了一下,但是如何创建警报,然后关闭我的应用程序?

4 个答案:

答案 0 :(得分:19)

您不应强行关闭应用程序,因为终止应用程序的标准方法是按主页按钮(或使用多任务栏)

  

不要以编程方式退出

     
     

永远不要以编程方式退出iOS应用程序,因为人们倾向于   将此解释为崩溃。但是,如果外部环境阻止   你的应用程序按预期运行,你需要告诉你   用户了解情况并解释他们可以做些什么。   根据应用程序故障的严重程度,您有两个   选择。

     

显示描述问题的有吸引力的屏幕并建议a   更正。屏幕提供反馈,让用户放心   你的申请没有错。它让用户掌控,   让他们决定是否要采取纠正措施   继续使用您的应用程序或按主页按钮并打开一个   不同的应用

     

如果只有部分应用程序功能无效,请显示   当人们激活该功能时,屏幕或警报。显示   仅当人们尝试访问不是的功能时才发出警报   运作。

Source

答案 1 :(得分:6)

您的应用不应该自行关闭。 iOS没有退出应用程序的概念。您可以通知用户没有互联网连接,并提供等待屏幕或其他显示他们的应用程序无用的内容,直到互联网连接可用,但您的应用程序应继续运行,直到操作系统决定关闭您。 / p>

答案 2 :(得分:5)

根据August的ans here

"On the iPhone there is no concept of quitting an app. The only action that should cause an app to quit is touching the Home button on the phone, and that's not something developers have access to.

According to Apple, your app should not terminate on its own. Since the user did not hit the Home button, any return to the Home screen gives the user the impression that your app crashed. This is confusing, non-standard behavior and should be avoided."


但如果您仍想以编程方式退出应用程序,那么 有两个命令退出应用程序。

1.exit(0)

2.[[NSThread mainThread] exit]

答案 3 :(得分:5)

不要关闭它,而是考虑通过弹出窗口向用户解释情况。

首先,下载Reachability from Apple

将类Reachability.h,.m,委托添加到您的项目中。然后在.m类中导入Reachability

#import "Reachability.h"

在viewWillAppear中或当你应该显示警告时:

//Connection check
    Reachability *reach = [Reachability reachabilityForInternetConnection]; 
    NetworkStatus netStatus = [reach currentReachabilityStatus];    
    if (netStatus == NotReachable)
    {   
        UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"No Internet Connection" message:@"Explain the situation to the user" delegate:nil cancelButtonTitle:nil otherButtonTitles:@"Ok", nil];
        [alert show];
        [alert release];       

    }    
    else {
    //other actions.
    }

正如其他人在我面前所说的那样。