情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

Windows Phone 8 のバックグラウンドで位置情報追跡アプリを実行する

2014/06/18

対象: Windows Phone 8

Windows Phone では、フォアグラウンドで一度に 1 つのアプリのみが実行されます。ユーザーが [スタート] ボタンを押すか、他のアプリを起動することで、現在のアプリから別の場所に移動すると、現在のアプリは中断されます。新しいフォアグラウンド アプリが、中断されたアプリより多くのメモリを必要とする場合は、中断されたアプリは終了され廃棄状態にされる可能性があります。Windows Phone アプリのライフ サイクルの詳細については、「Windows Phone 8 のアプリのアクティブ化および非アクティブ化」を参照してください。 Windows Phone 8 では、ユーザーが位置情報追跡アプリから別の場所に移動した後に、そのアプリがアクティブに位置情報を追跡している場合は、位置情報追跡アプリをバックグラウンドで継続的に実行できます。この機能により、ナビゲーションの方向指示を提供するアプリのようなシナリオに対応できます。バックグラウンドで実行される単純なアプリを作成するためのチュートリアルについては、「Windows Phone 8 のバックグラウンドで位置追跡アプリを実行する方法」を参照してください。

メモメモ:

バックグラウンドで位置情報を追跡するアプリは、Fast Resume のモードに自動的に入ります。この機能の詳細については、「Windows Phone 8 の高速アプリ再開」を参照してください。

このセクションでは、バックグラウンドで実行しているアプリをオペレーティング システムが非アクティブ化するときの条件を示します。バックグラウンドで実行しているアプリが非アクティブ化されると、通常のフォアグラウンド アプリケーションの場合と同様に、Deactivated イベントが発生します。非アクティブ化された理由をアプリで確認するには、Deactivated イベント ハンドラーの Reason プロパティをチェックします。

  • アプリが位置情報のアクティブな追跡を停止した。アプリが位置情報の追跡を停止するには、Geolocator クラスの PositionChanged イベントと StatusChanged イベントのイベント ハンドラーを削除するか、GeoCoordinateWatcher クラスの Stop() メソッドを呼び出します。

  • アプリが、ユーザーとのやり取りがない状態で、4 時間続けてバックグラウンドで実行された。

  • バッテリー セーバーがアクティブである。

  • デバイスのメモリが不足している。

  • ユーザーが電話の位置情報サービスを無効にした。

  • 別のアプリがバックグラウンドでの実行を開始した。

バッテリー セーバーを有効にした場合や、位置情報サービスを無効にした場合など、さまざまな条件下でアプリをテストすることを推奨します。

アプリのバックグラウンド実行中に使用できる API の種類には制限があります。使用できる API のリストについては、「Windows Phone 8 のバックグラウンドでの実行中に使用できる機能」を参照してください。

モバイル デバイスで実行されるアプリにとって、電力消費は重要な考慮事項です。アプリのバックグラウンド実行中は、バッテリー消費量を減らしてアプリのユーザー満足度を高めるためにできることがあります。「Windows Phone 8 のバックグラウンドで位置追跡アプリを実行する方法」で説明する例では、アプリがバックグラウンドに移行するときに不要な機能をオフにする単純な方法を示しています。

  • ネットワーク要求の数と頻度を最小限に抑えます。個々のリクエストを数秒おきに実行する代わりに、可能な限り、要求をグループ化し、それを 1 分以上の間隔でバッチ処理します。

  • アクティブな Timer オブジェクトと DispatcherTimer オブジェクトが UI などのフォアグラウンド機能のためだけに使用されている場合は、それらを停止します。

  • XAML アニメーションをすべて停止します。

  • アプリケーションをバックグラウンドで実行する必要がなくなった場合は、Geolocator クラスの PositionChanged イベントと StatusChanged イベントのイベント ハンドラーを削除するか、GeoCoordinateWatcher クラスの Stop() メソッドを呼び出して、位置情報の追跡を停止します。

表示: