どのようにプログラムでは、iOSでのiPhoneアプリを再起動します
質問
解決
これを行うには、私が知っている唯一の方法は理想的ではありませんが、それは動作します。
まず、あなたのアプリがアプリは、終了したバックグラウンドタスクとして実行しないときに終了しなければならないバックグラウンド実行(マルチタスク)のオプトアウトする必要があります。これは、plistのキーUIApplicationExitsOnSuspendで行われます。
第二には、あなたのアプリがアプリを起動するために使用できるカスタムURLスキームを登録する必要があります。
第三には、あなたが読み込まれたときには、アプリケーションのカスタムURLスキームにリダイレクトすることをどこかにホストされたWebページを必要としています。
はフォース、ユーザは、アクティブなインターネット接続を必要とします。
終了して再起動するには、お使いのホストされたリダイレクトウェブページ上のUIApplicationのOpenURLを呼び出します。あなたのアプリが終了するとSafariが起動し、ページをロードします。ページは、iOSアプリを起動させ、内部のOpenURLを呼び出すためのSafariを促し、カスタムURLスキームへのSafariをリダイレクトします。
他のヒント
あなたはココアアプリケーションではなく、iOSのを参照しているにリンクされていることを私のポスト。 iOSの上では、アプリケーションを終了することができます(ただし、Appleはこの好きではない)exit(0);
を使用しますが、私はそれをお勧めしません。あなたはiPhoneのアプリかかわらず、再起動することはできません。
あなたはジェイルブレイクデバイス用に開発している場合を除き、アップルも、あなたはプログラム的にアプリを終了することはできません。だから、デバイスを再起動することは問題外です。
あなたのAppDelegate
インスタンスは、メソッド
(void)applicationDidBecomeActive:(UIApplication *)application
{
}
ここでは、アプリが再起動するか、それはやっていたものは何でもやって継続すべきかどうかを把握するためのロジックを置くことができます。たとえば、あなたが最初にBOOL
ですが、何かがあなたが新鮮なリニューアルする次回たいというあなたのアプリケーションで発生するたびに、真としてトリガます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
}