2017-08-24 4 views
0

バックグラウンドで実行されるGPS追跡タイプのiOSアプリがあります。追跡プロセスの実行中にapplicationWillTerminateメソッドが呼び出されてアプリが終了しているように見えることはめったにありません。iOSがアプリを終了させる理由

私たちは多かれ少なかれ、理由として低RAMを排除しました。また、バッテリー残量の問題やユーザーがアプリを終了していることは間違いありません。

iOSがアプリを終了させる可能性が最も高い原因は何ですか?

私たちが持っていた考えには、CPU使用率、電話の温度などがありました。また、アプリがバックグラウンドで長期間(たとえば、数日または数週間)実行されているためです。

iOSがアプリを終了させる可能性がありますか? AppleのBackground Executionドキュメントから

+0

これは間違っていると思います。あなたのアプリは常に、システムが何らかの理由でバックグラウンドで終了することがあります。あなたはこれを防ぐことはできませんまたはそれを推測してください。終了されることを期待してはいけません。 – matt

+0

しかし、このメソッドは、アプリがバックグラウンドで(中断されていない)実行されていて、何らかの理由でシステムを終了する必要がある状況で呼び出されることがあります.https://developer.apple.com/documentation/uikit/uiapplicationdelegate/ 1623111-applicationwillterminate –

答えて

0

:バックグラウンドで実行中

は、最小限の作業を行います。バックグラウンドアプリに与えられた実行時間 は、フォアグラウンドアプリに与えられた時間 よりも制限されています。バックグラウンドで を実行するのに時間がかかりすぎるアプリは、システムによって抑制されたり、終了したりすることがあります。

また、私はあなたが(同じドキュメントから)抵触以下の実行していない確認したと仮定します。beginBackgroundTaskWithNameへ

各コール:expirationHandler:または beginBackgroundTaskWithExpirationHandler:メソッドが生成します固有の トークンを使用して、対応するタスクに関連付けます。あなたのアプリケーション がタスクを完了したら、対応するトークン を使ってendBackgroundTask:メソッドを呼び出して、タスクが完了したことをシステムに知らせる必要があります。 バックグラウンドタスクのendBackgroundTask:メソッドを呼び出さないと、 がアプリを終了させます。

関連する問題