私はWindows Mobileを大部分のターゲットとするWindows UWPアプリケーションを持っています。このアプリケーションは、ユーザーの歩行トラフィックと、定義されたジオフェンス内または外にあるときを監視します。私はその後、デバイスとの間で位置データを送信するためにSignalRを使用するWebバックエンドを持っています。ロック画面のために中断されてデバイスがスリープ状態になってもアプリケーションを実行させる方法
ロック画面で問題が発生しています。アプリが起動して動作しているが、ユーザーが端末をロックしているとか、タイムアウトの設定オプションが画面の有効期限をロックして端末がロックしたとします。あなたは力をつけてスワイプしてロックを解除し、アプリがまだ実行中であることを確認することができます。しかし、ロックされている間は、アプリが停止されていると仮定します。
まず、私は停止中に自分の位置情報の更新はどうなるのでしょうか?私はSignalRを介して私のハブに位置更新を送信するためにこれらを使用するだけでなく、彼らがジオフェンスの内外にあるかどうかをチェックします。私はロック画面が引き継いだと私のアプリが中断されたとき、私はもはや私のOnPositionChangedイベントを取得することを前提としていません
_geolocator = new Geolocator { ReportInterval = 0, DesiredAccuracyInMeters = 10, MovementThreshold = 4};
// Subscribe to PositionChanged event to get updated tracking positions
_geolocator.PositionChanged += OnPositionChanged;
// Subscribe to StatusChanged event to get updates of location status changes
_geolocator.StatusChanged += OnStatusChanged;
:私はこのような何かをやっていますか?アプリが中断されていたり、ロック画面がオンになっていても、あなたの位置を追跡するターンナビゲーションでターンするなど、これは他のものとどう対処していますか?
また、2番目の質問はSignalR接続とは何ですか?私は、アプリケーションが中断されていないときと同じようにOnPositionChangedイベントが発生したときに、私の位置情報更新をプッシュすることができるのが大好きです。それもできますか?
私はバックグラウンドタスクについて読んだことがありますが、これは15分間隔でしか実行されていないようです(誤解されていない限りこれは設定可能です)。私のアプリケーションでは、15分が長すぎます。私が望む最も多くのものは30秒または1分です。
ところで、はい、私はこのすべてがバッテリ寿命に深刻な影響を与えていることを理解しています。私はこのためにバッテリーの寿命に心配していないと仮定しましょう。
ありがとうございます!
既にアプリが停止されているかどうかを確認するために何らかのテストを実行しましたか?ロックされた画面でアプリをテストすると、どのようなエラーが発生しましたか? – Alisson
まあ、特にテストはありません。私はMSDNのドキュメントを読んでいますが、あなたのアプリがフォアグラウンドにない場合は、バックグラウンドタスクや何かのようなことを特別に行わない限り、バックグラウンドまたはサスペンドされています。 –