0

プログラムでアプリケーションを終了するより良い方法はありますか?

最近、アプリプロセスを終了するために NSTimer を使用して時間を設定するためのユーザー設定を持つラジオアプリケーションを作成しました (つまり、スリープ時間)。時間に達すると、アプリはそのプロセスを停止して終了する必要があります。

これらのステートメントを使用して、時間になったらアプリを終了しました。

  [[UIApplication sharedApplication] suspend];
  [[UIApplication sharedApplication] terminateWithSuccess];

theTimer=[NSTimer scheduledTimerWithTimeInterval:(1.0/1.0) target:self selector:@selector(countTime) userInfo:nil repeats:YES];

counter-=1;
timeLeft.text=[NSString stringWithFormat:@" %d",counter];
if (counter==0.0) {

    [theTimer invalidate];
  [[UIApplication sharedApplication] suspend];
  [[UIApplication sharedApplication] terminateWithSuccess];

[[UIApplication sharedApplication] suspend]; を使用して問題があるかどうか。[[UIApplication sharedApplication] terminateWithSuccess]; メソッド

アプリを終了する、または少なくともアプリのプロセスをフリーズするための他のより良い方法..助けが必要ですか?

4

3 に答える 3

2

Apple は、故意に一時停止または終了するアプリケーションを承認しません。またはを含まない公式ドキュメントにリストされているメソッドのみを使用できます。suspendterminateWithSuccess

于 2012-03-16T07:54:20.647 に答える
0

私は常にexit(0)を使用してきました。アプリを終了する前にコードを実行する必要がある場合は、exit(0) の前に呼び出す必要があると思います。

ユーザーの観点からはクラッシュのように見えるため、Appleは exit() の使用をお勧めしません。しかし、彼らはまた、アプリを正常に終了させるための API 呼び出しはないと言っています。

ユーザーがホームを押さずにアプリを終了する方法を探している場合、スリープ時間中に、アプリに注意を払わず exit() が終了するため、クラッシュと混同しないと思いますクラッシュログはありません。

したがって、オプションは次のとおりです。

  • これを忘れて、しばらくしてからビープ音を鳴らして、アプリを閉じるように思い出させてください. (ひどい!)
  • プライベート コールを使用してアプリを閉じて、Apple に拒否される危険を冒してください。
  • exit() を使用してアプリを閉じ、POSIX (受け入れられた) 呼び出しに固執します。
于 2012-03-16T07:55:38.227 に答える
0

あなたのリプレイのtanqなので、プログラムでアプリケーションを終了することを忘れています。次の方法は、MPMoviePlayerController オブジェクトの再生を停止することです。次のレベルの問題を取得しました

sleepTime と音楽再生ページの私の設定ページは、どちらも異なる viewControllers であるため、時間設定ページで MPMoviePlayerController オブジェクトに直接アクセスできないため、音楽再生ページでメソッドを作成しました

MPMoviePlayerController *player=[[MPMoviePlayerController alloc]initWithContentURL:[NSURL URLWithString:@"http://www.radioparadise.com/musiclinks/rp_64aac.m3u"]];
[player prepareToPlay];
[player play];

- (IBAction)StopPlay:(id)sender 
{   
 [player stop];
}

だから私は音楽再生ページのオブジェクトを作成し、設定ページからこのメソッドを呼び出しました。これは設定ページの私のコードです

@class MusicPlayingPage;
 @interface secondView : UIViewController
{
MusicPlayingPage *audio; 
}

そしてsettingsPageでメソッドを呼び出しました

[audio stopPlay];

コントロールは streamingPage に正しく到達しますが、プレーヤーが再生を停止していないようです。これらのプレーヤー オプションのいずれにもアクセスできません [player stop]; 、[プレーヤーの一時停止];

musicPlayingPage のこのメソッドの問題

- (IBAction)StopPlay:(id)sender 
{   
 [player stop];
}

私の質問が理解できない場合は申し訳ありません。

于 2012-03-17T10:50:58.063 に答える