11

バックグラウンドに自動的に送信する必要があるiPhoneアプリがあります。アプリはバックグラウンドモードでVOIPキーを使用して定義されているため、バックグラウンドで実行し続ける必要があります。特にアプリを実行し続ける必要があるので、exit(0)を呼び出すのは良くありません。

アプリはアプリストア経由で配布されないため、プライベートAPIを使用しても問題ありません。

UIApplicationterminateとUIApplicationterminateWithSuccessについて読みましたが、もう利用できないようです

4

3 に答える 3

10

すでにここでかなりよく答えました:

アプリケーションを一時停止します

そのポスターが書いたように:

アプリケーションを終了したり、プログラムでバックグラウンドに送信したりすることは、[iOSヒューマンインターフェイスガイドライン] [1]に違反します。これは通常、レビュープロセスを通過するための良い前兆ではありません。

プログラムで終了しないでください

人々はこれをクラッシュと解釈する傾向があるため、iOSアプリケーションをプログラムで終了しないでください。ただし、外部の状況によってアプリケーションが意図したとおりに機能しない場合は、その状況についてユーザーに通知し、ユーザーがそれに対して何ができるかを説明する必要があります。アプリケーションの誤動作の程度に応じて、2つの選択肢があります。

問題を説明し、修正を提案する魅力的な画面を表示します。画面には、アプリケーションに問題がないことをユーザーに安心させるフィードバックが表示されます。これにより、ユーザーは管理下に置かれ、ユーザーが修正措置を講じてアプリケーションを引き続き使用するか、ホームボタンを押して別のアプリケーションを開くかを決定できます。

アプリケーションの機能の一部だけが機能していない場合は、ユーザーが機能をアクティブにしたときに画面またはアラートを表示します。機能していない機能にユーザーがアクセスしようとした場合にのみアラートを表示します。

于 2012-12-21T14:17:56.100 に答える
7

Swift 3では、以下のコードを使用して、魅力を発揮します

  DispatchQueue.main.asyncAfter(deadline: .now()) {
          UIApplication.shared.perform(#selector(NSXPCConnection.suspend))
      }
于 2017-10-06T13:02:48.107 に答える
3

私はあなたがプログラムで終了するべきではないという他の答えに同意します。プログラムで終了する方法があります。

*免責事項-これを行うべきではありません。

exit(0);

ホームボタンを押さずにアプリケーションをバックグラウンドに置く方法はありません。ある場合は、質問に脱獄フラグを追加して質問することをお勧めします。

詳細については、この重複する質問、アプリケーションを終了する適切な方法を確認してください。

于 2012-12-21T14:26:05.870 に答える