2016-07-29 7 views
2

私のアプリは、人々が特定の場所でジオフェンスを作成することができます。しかし、私はジオフェンスを削除することができないよう、正常に動作します。ここ は、すべてのジオフェンスを除去するために私のコードです。ジオフェンスは削除しませんか?

public void removeAllGeofences(GeofenceControllerListener listener) { 
    namedGeofencesToRemove = new ArrayList<>(); 
    for (NamedGeofence namedGeofence : namedGeofences) { 
     namedGeofencesToRemove.add(namedGeofence); 
    } 
    this.listener = listener; 

    connectWithCallbacks(connectionRemoveListener); 
} 

これが動作するようには思えない、と私は自分の携帯電話を再起動しない限り、ジオフェンスが残っています。 ジオフェンスがどのように機能するかについてのすべてのヘルプや説明は、本当に役立つだろう!それはもはや必要または所望される場合にジオフェンスの監視を停止しない

答えて

0

は、デバイス上のバッテリ電源とCPUサイクルを節約することができます。あなたはaddremoveジオフェンスに使用される主な活動でgeofence monitoringを停止することができます。ジオフェンスを削除するとすぐに停止します。 APIは、要求IDによって、または所与PendingIntentに関連付けられたジオフェンスを除去することにより、いずれかのジオフェンスを除去する方法を提供します。

LocationServices.GeofencingApi.removeGeofences(
mGoogleApiClient, 
// This is the same pending intent that was used in addGeofences(). 
getGeofencePendingIntent() 
).setResultCallback(this); // Result processed in onResult(). 
} 

あなたはこのような定期的位置情報の更新などの他の位置認識機能、とジオフェンシングを組み合わせることができます

次のスニペットは、デバイスが入るか、以前に追加したジオフェンスを終了すると、すべての更なる通知を停止し、PendingIntentでジオフェンスを削除します。詳細については、このクラスの他のレッスンを参照してください。どこか(例えば、sqliteのか、共有環境設定で)自分のアプリで

temporary disableへのストアジオフェンスパラメータ、addGeofences経由で必要なときに(再有効化)GeofencingApiからそれを削除して復元します。

関連する問題