我的应用程序在 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 之外,但是当服务重新启动时,值会丢失并设置为零。
我只是想知道这是好的做法吗?我应该使用其他选项吗?