iOSでiPhoneアプリをプログラムで再起動する方法は?
私はこの方法を見つけますhttp://writeitstudios.com/david/?p=54
しかし、単純なことかもしれません。
これを行う唯一の方法は理想的ではありませんが、機能します。
まず、アプリはバックグラウンド実行 (マルチタスキング) をオプトアウトする必要があります。アプリは、バックグラウンド タスクとして実行するのではなく、終了時に終了する必要があります。これは、plist キー UIApplicationExitsOnSuspend で行われます。
次に、アプリは、アプリの起動に使用できるカスタム URL スキームを登録する必要があります。
第 3 に、ロード時にアプリのカスタム URL スキームにリダイレクトする Web ページがどこかにホストされている必要があります。
4 番目に、ユーザーはアクティブなインターネット接続が必要です。
終了して再起動するには、ホストされているリダイレクト Web ページで UIApplication openURL を呼び出します。アプリが終了し、Safari が起動してページが読み込まれます。このページは、Safari をカスタム URL スキームにリダイレクトし、Safari に内部的に openURL を呼び出すように促し、iOS がアプリを起動するようにします。
あなたがリンクした私の投稿は、iOS ではなく Cocoa アプリケーションについて言及しています。iOS では、 を使用してアプリケーションを終了できます (ただし、Apple はこれを好まない) が、これexit(0);
はお勧めしません。ただし、iPhone アプリを再起動することはできません。
ジェイルブレイクされたデバイス向けに開発している場合を除き、Apple はプログラムでアプリを終了することさえ許可しません。したがって、デバイスを再起動することは問題外です。
インスタンスAppDelegate
にはメソッドがあります
(void)applicationDidBecomeActive:(UIApplication *)application
{
}
ここに、アプリを再起動する必要があるかどうかを判断するロジックを配置できます。たとえば、最初はBOOL
変数を使用できますが、アプリで何かが発生すると常に true としてトリガーされ、次回は新たに再起動する必要があります。appMustRestart
false
if (appMustRestart)
{
[self resetVars]; // call a method that resets all your vars to initial settings
// INSERT CODE HERE TO TRANSFER FOCUS TO INITIAL VIEWCONTROLLER
}