UpdateHandler, делать что-то, только когда триггер работает, Android - PullRequest
1 голос
/ 18 августа 2010

У меня есть обработчик, который получает сообщение при каждом обновлении местоположения, каждые 5 секунд. Из местоположения я могу запросить текущий город, в который перемещается пользователь. Затем я хочу загрузить некоторые данные один раз и только при изменении города. Как я могу это понять?

Handler myViewUpdateHandler = new Handler(){

    public void handleMessage(Message msg) {
            switch (msg.what) {
            case UPDATE_LOCATION:
                mc.animateTo(geosenseo.getCurrentPoint());  
                mapView.invalidate();

                    //a async task sets the currentCity field   

               if(trigger && (currentCity != "")){
                   firstCity = currentCity;
                   trigger = false;
               }

               if((currentCity != "") && (firstCity != "")){
                   if(firstCity != currentCity){
                       //download only when city changes
                       trigger = true;
                   } 
               }

           }

            super.handleMessage(msg);
    }
};

как ты видишь, я играл с варами. есть идеи? спасибо

1 Ответ

1 голос
/ 18 августа 2010

Это помогло ... сравнить строки с равными и следующее выражение if

if(!currentCity.equals("")){
    if(!firstCity.equals(currentCity)){
      firstCity = currentCity;
    }
}
...