その理由は、アプリケーションが停止されたと見なされないためだと思います。通常のオブジェクティブ C プログラミングでは、ユーザーがホーム ボタンをダブルクリックするとapplicationWillResignActiveが呼び出されることを意味します。したがって、この部分にそのコードを追加する必要があります。
イベントの流れは次のとおりです:
http://www.cocoanetics.com/2010/07/understanding-ios-4-backgrounding-and-delegate-messaging/
コロナには次のようなイベントがあるようです。
「applicationStart」は、アプリケーションが起動され、main.lua 内のすべてのコードが実行されるときに発生します。
「applicationExit」は、ユーザーがアプリケーションを終了したときに発生します。
「applicationSuspend」は、通話中や非アクティブ状態から電話がスリープ状態になった場合など、デバイスがアプリケーションを一時停止する必要がある場合に発生します。シミュレータでは、これはバックグラウンドで実行されているシミュレータに対応します。一時停止中は、イベント (enterFrame イベントでさえも) がアプリケーションに送信されないため、時間に依存するコードがある場合は、一時停止中のアプリケーションによって失われた時間を考慮する必要があります。
- 「applicationResume」は、中断後にアプリケーションが再開するときに発生します。電話では、電話が原因でアプリケーションが中断された場合に発生します。シミュレーターでは、シミュレーターがバックグラウンドにあり、現在はフォアグラウンド アプリケーションである場合に発生します。
したがって、コロナ API の外で実装する必要があると思います。
コロナドキュメントによると、デリゲートでそれらを実装できます。
CoronaDelegate プロトコルの実装を介して UIApplicationDelegate イベントをインターセプトできます。
このプロトコルは、UIApplicationDelegate プロトコルに準拠しています。コロナの内部デリゲートは、実装されている場合、プロトコルのメソッドを呼び出します。
次の点に注意してください。
Apple が廃止したメソッドは無視されます。ほとんどの場合、クラスのバージョンは、コロナの対応するバージョンの UIApplicationDelegate メソッドの後に呼び出されます。バージョンが以前に呼び出される状況が 1 つあります。アプリが一時停止またはバックグラウンドに移行しようとしている状況では、applicationWillResignActive: や applicationDidEnterBackground: など、コロナのバージョンの前にメソッドが呼び出されます。
http://docs.coronalabs.com/native/enterprise/ios/CoronaDelegate.html
しかし、これは単なる推測です。それが役に立てば幸い!
編集:
私が考えていたのは、あなたができる本当に簡単なことは、それを外でキャッチして「一時停止」画面を表示し、アプリケーションがフォアグラウンドになったときにそれを非表示にすることです。