Amo*_*til 3 android sharedpreferences android-sharedpreferences
我的应用程序在Android服务中使用LocationListener来更新频繁的位置.应用程序将一些位置过滤器相关数据存储在共享首选项 要求是尽可能频繁地更新位置.我在侦听器的onLocationChanged中从共享首选项中检索数据.这是我的代码
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
------
------
}
}
Run Code Online (Sandbox Code Playgroud)
使用上面的代码,sharedPreference以重复的方式使用.
我已经尝试在onLocationChanged之外放置过滤器变量,但是当重新启动服务时,值会丢失并设置为零.
我只是想知道这是不是很好的做法?我应该使用其他选项吗?
使用上面的代码,sharedPreference以重复的方式使用.我只是想知道这是不是很好的做法?
以重复方式访问SharedPreferences是没有问题的.但是,在您的情况下,sharedPreferences每次事件触发时您都会重新初始化.您应该只在onCreate您的活动或onCreateView片段中执行一次.
同样适用于filterOne.如果该值是常量,因为它不会更改,您应该只在onLocationChanged调用之外检索一次.
所以回答你的问题
是重复使用Android共享首选项存储会影响性能吗?
是的,但这只是因为你每次都重新初始化它.如果您遵循我的建议,对性能几乎没有影响.
| 归档时间: |
|
| 查看次数: |
297 次 |
| 最近记录: |