3

私のアプリケーションは、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 の外側に配置しようとしましたが、サービスを再起動すると値が失われ、ゼロに設定されます。

私はただ知りたいのですが、それは良い習慣ですか?別のオプションを使用する必要がありますか?

4

1 に答える 1