代码一次又一次地请求雅虎气象服务

时间:2013-03-10 06:35:27

标签: android android-activity activity-lifecycle yahoo-weather-api

我开发了一个使用Yahoo! Weather API获取天气信息的Android应用,因为Yahoo! Weather API每小时只允许10 to 20次服务。当我在他们之间来回切换时,我的应用程序有两个活动我的应用程序一次又一次地请求气候服务我的代码是:

@Override
protected void onResume() {
    // TODO Auto-generated method stub      
    String nameOfCity= pref.getString("cityname", cityNameInput.getText().toString());      
    getWeather(null, nameOfCity);// this the AsyncTask which is used to request Yahoo! Weather service.
    cityNameInput.setText(nameOfCity);
    super.onResume();
    Log.d("My_TAG", "in onResume()");
}

@Override
protected void onPause() {
    // TODO Auto-generated method stub      
    editor = pref.edit();
    if(cityNameInput.getText().toString().equals("")){
        cityNameInput.setText(yahooWeatherInfo.getLocationCity());
    }else{
        editor.putString("cityname", cityNameInput.getText().toString());
    }
    editor.commit();
    super.onPause();
    Log.d("MY_TAG", "in onPause()");
}

现在请告诉我如何限制不要在活动之间切换时再次请求Yahoo! Weather Service

1 个答案:

答案 0 :(得分:1)

我看了你的代码。

您正在getWeather(null, nameOfCity);中呼叫onResume()。当您的活动再次恢复时,会调用此onResume()方法。

例如:A ---> B然后从B活动返回,然后将调用活动onResume()方法并向服务器发出请求。因此,请在`getWeather(null, nameOfCity);中调用此方法onCreate(bundle)。在创建活动时只调用一次。