1

サービスを1時間に1回だけリクエストできるようにYahoo! Weather API 、天気情報を取得するために使用するAndroidアプリを開発しました。私のアプリは、それらの間を行ったり来たりするときに2つのアクティビティを持っています。私のアプリは、天気予報サービスを何度もリクエストします。これに対する私のコードは次のとおりです。Yahoo! Weather API10 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アクティビティの切り替え時に何度もリクエストしないように制限する方法を教えてください。

4

1 に答える 1

1

私はあなたのコードを見ました。

に電話getWeather(null, nameOfCity);していonResume()ます。このonResume()メソッドは、アクティビティが再開されたときに呼び出されます。

例: A ---> B then Press back from B activity すると、A activityonResume()メソッドが呼び出され、サーバーにリクエストが送信されます。でこのメソッド`getWeather(null, nameOfCity);を呼び出しますonCreate(bundle)。アクティビティが作成されたときに一度だけ呼び出されます。

于 2013-03-10T06:42:20.543 に答える