iOSのバックグランドに問題があります。まず、簡単な説明者にしてみましょう。iOSでXamarin.iOSでバックグランドする(C#):どの方法を使用しますか?
私は、ユーティリティを見つけるためのチケットを受け取り、配布できる仕事管理会社の仕事をしています。ユーザーはサーバーからチケットをダウンロードして作業し、返答をサーバーに送り返すことができます。ダウンロードしたチケットはローカルのSQLiteデータベースに入り、ユーザが作成した応答はローカルSQLiteデータベースに保存されます。私の同僚は、C#でXamarinでAndroidアプリを書いて、次のようにチケットをダウンロードして、レスポンスをアップロードするために彼の知的なプロセスは、次のとおりです。ローカルのSQLiteデータベースへの当社のサーバーから
- ダウンロード券、「チケット」
- をチェック応答があるかどうかを確認するにはローカルの「回答」SQLiteデータベースは
- を作っ作っ応答がある場合は、当社のサーバー
- に送って5分
- を待っ繰り返し
これにより、ユーザーは最初にバッチのバッチをダウンロードして作業することができます。ユーザーがインターネットを使用していないときにこのプロセスを実行すると、何も起こりません。タイマーがリセットされます。このプロセスにより、ユーザーはインターネットなしでチケットに応答することができ、インターネットに接続しているときは常に応答をアップロードしたり、新しいチケットをダウンロードしたりすることができます。
私の問題は、iOSではバックグランドがAndroidよりもはるかに制限されていることです。バックグラウンドフェッチがあり、プッシュ通知があります。バックグラウンドフェッチでは、システムはPerformFetch
メソッドを実行するのに最適な機会を計算しますが、必要な厳格な5分タイマーは与えません。プッシュ通知では、ユーザーがインターネットを持たない場合、プッシュ通知を受け取ることはありません。
上記のように5分タイマーを設定してプロセスを実行し、新しいチケットがあるかどうかをチェックして、存在する場合は新しい応答を送信することができます。しかし、私はiOSのバックグラウンドの制限的性質のためにそれを行うことはできません。
提案がありますか?彼らは高く評価されるだろう。
ありがとうございました。