强制申请终止iPhone

时间:2009-12-03 18:17:07

标签: ios objective-c

我正在开发一个完全基于网络数据的iPhone应用程序。

如果没有连接到互联网,则该应用程序无用。

所以,我想在找不到连接时终止应用程序。

NSURL *tmpURl=[NSURL URLWithString:[NSString stringWithFormat:@"%@search.php",[iGolfAppDelegate getServerPath]]];
    NSMutableURLRequest *theRequest=[NSMutableURLRequest requestWithURL:tmpURl];
    con=[[NSURLConnection alloc] initWithRequest:theRequest delegate:self];
    if(con){
        myWebData=[[NSMutableData data] retain];    
    } else { 
        //Yes I will provide two buttons on alertview "retry" & "close", & when user
        //taps on "close" => application should terminate.
        // i will send alertview & when user taps on button close then
        // what to write for terminating application?
        // Ok Ok. Don't terminate. User will terminate.
        // user is owner of iPhone 
        // let him choose what to do
        // wait till wifi connects
    }

问题是如何终止申请?

exit(0)只是终止申请的选项还是有其他可用选项?

8 个答案:

答案 0 :(得分:17)

Apple非常清楚这个话题:

  

没有提供API   优雅地终止iPhone   应用。在iPhone OS下,   用户按Home键关闭   应用。你的申请应该   有条件,它不能   提供其预期的功能,   推荐的方法是显示一个   警告指示该用户的用户   问题的本质和可能性   用户可以采取的行动 - 转弯   在WiFi,启用位置服务,   等。允许用户终止   申请由他们自行决定。

请参阅Technical Q&A QA1561

答案 1 :(得分:10)

如果没有活动的网络连接,您可能会考虑通知用户他们无法使用您的应用程序。直接终止应用程序似乎是一种非常不友好的方式来做到这一点;用户只会看到应用程序“消失”。

我见过的每个表现良好的应用程序至少会在终止之前发出通知。

答案 2 :(得分:6)

我建议你重新考虑3个原因

  1. 您的应用可能会崩溃。
  2. 用户可能会在您的应用启动时获得互联网连接。在这种情况下,“重试”最好。
  3. 我认为Apple可能实际上不接受该应用程序,如果它这样做。如果Apple应用程序需要互联网连接,他们肯定不会做什么,他们会测试看看应用程序在没有连接的情况下会做什么。
  4. 如果(无论出于何种原因)你想要这样做,你可以使用。

    exit(0);
    

答案 3 :(得分:5)

你总是可以除以零。作为奖励,实施将反映出这是一个好主意。

答案 4 :(得分:3)

希望这有用 [[NSThread mainThread]退出];

答案 5 :(得分:2)

如果你终止它会看起来你的应用程序崩溃了!

最好发布一条消息,说没有互联网连接,并给他们一个重试选项(如果他们可以连接互联网),或者选择自己选择

答案 6 :(得分:2)

你不应该这样做。请查看the Human Interface Guidelines中的“停止”,因为您可能无法提交执行此操作的应用程序,或者至少提供奇怪的用户体验。

该链接还显示了处理此问题的正确方法,如iTunes Music Store应用程序。

答案 7 :(得分:1)

如果您无法上网,您的应用将被拒绝。

对不起。

-t