我在寫一個應用程序,根據用戶地理位置執行一個方法。我正在使用一個實現LocationListener的Activity。位置緯度和經度存儲在數據庫中,並且每當用戶進入當前位置的範圍內時,與存儲的位置相比,就執行一個方法。Android的位置距離近在咫尺
我的問題是,只要用戶在接近處移動,方法startTimer(),startTimer()就會執行。我希望在用戶輸入區域時執行startTimer()一次,並在用戶退出區域時執行stopTimer()。
到目前爲止,我得到了這一點,但似乎只離開該區域時的工作:
@Override
public void onLocationChanged(Location location) {
longitude = location.getLongitude();
latitude = location.getLatitude();
Log.i("", "Latitude: " + latitude);
Log.i("", "Longitude: " + longitude);
if(activities != null) {
for (Activity activity : activities) {
Location newLocation = new Location(provider);
newLocation.setLongitude(activity.getLongitude());
newLocation.setLatitude(activity.getLatitude());
if(location.distanceTo(newLocation) > 15) {
activity.setInProximity(false);
stopTimer(activity.getId());
}
if (location.distanceTo(newLocation) <= 15 && !activity.isInProximity()) {
activity.setInProximity(true);
startTimer(activity.getId());
}
}
}
}
你可以使用一個布爾variabile的迭代活動類的私有布爾數據成員要記住這一點,不是嗎? – optimusfrenk