現在、すべてのプラットフォームからのリアルタイムイベント通知に基づいて受信し、対話できる必要があるアプリを開発しています。これを達成するためにSignalRを使用しています。これは共有プロジェクトなので、Xamarin.Formsを使用しています。Xamarin iOS - バックグラウンドモードでメッセージの受信を停止します。
今のところすべてがうまく機能しており、特にAndroidは完璧です。アプリケーションがバックグラウンドでもフォアグラウンドでも、SignalRからのメッセージを受信してサウンドを再生し、期待どおりに振動します。 iOS 10.3シミュレータでも、期待どおりに動作します。昨日まで、アプリケーションがバックグラウンドモードになったときに実際のデバイスで実現したときは、すべてを一時停止し、フォアグラウンドでバックがやっていると再開し、今通知が送信されたかのようになります。だから、私はいくつかの研究を行い、バックグラウンドスレッドで長時間実行しているタスク(私の場合は10秒間隔の永遠のループ)を実行し、シグナルを受け取ることができたと考えました(デバッガで見ることができます)バックグラウンドで振動していました。しかし、ある一定の時間が過ぎると、私は10分以内にiOSがメモリをクリアしていると推測しています。アプリを開いたときにログイン画面を表示するため、アプリを開いたときにリロードされたようです。
今質問は です。1.バックグラウンド状態でSignalRイベントを受信し続けるにはどうすればいいですか? 2.長い間バックグラウンドにいるため、iOSを停止してアプリをリロードすることはできますか? 3. Appstoreで公開可能なAppstoreは、静かなオーディオを永遠に再生したり、VoIPアプリケーションではないため、背景のためにVoIPを使用するなどのバックグラウンドで行われる不正な作業のために拒否してはいけません。 4.まもなく私はバックグラウンドモードで位置更新を実装しようとしているので、アプリ全体をバックグラウンドで生き生きとさせていますか?そして私は期待しているように振る舞う?
私は現在旅行中で、私はコードスニペットを提供することはできませんが、質問があればお気軽にお問い合わせください。
この退屈な記事を読んでいただきありがとうございます。
https://developer.apple.com/documentation/uikit/core_app/managing_your_app_s_life_cycle/preparing_your_app_to_run_in_the_background/updating_your_app_with_background_app_refresh –