私のアプリケーションは、Android サービスで LocationListener を使用して、頻繁に場所を更新します。アプリケーションには、共有設定に保存されている場所フィルター関連のデータがいくつかあります。要件は、可能な限り頻繁に位置情報の更新を取得することです。リスナーの onLocationChanged で Shared Preference からデータを取得します。これは私のコードです
public class MyLocationListener implements LocationListener {
public void onLocationChanged(final Location loc) {
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
int filterOne = sharedPreferences.getInt("filter_data",100);
------
------
//code to process location with filter
------
------
}
}
上記のコードを使用すると、 sharedPreference が繰り返し使用されます。
フィルター変数を onLocationChanged の外側に配置しようとしましたが、サービスを再起動すると値が失われ、ゼロに設定されます。
私はただ知りたいのですが、それは良い習慣ですか?別のオプションを使用する必要がありますか?