Я пишу приложение для эмуляции инструмента для мониторинга окружающей среды с использованием GPSinformation для моделирования данных измерений (https://github.com/sickel/measem). В этом приложении я хочу, чтобы пользователь мог определить точечный источник в определенном месте. Lat/lon этого местоположения должен храниться в общих предпочтениях. Точка должна быть определена путем ввода параметров lat и lon в настройках (с использованием API-интерфейсов предпочтений) или путем повторного включения gpslocation. Часть с настройками работает отлично, я также могу читать в местоположении из gps, но этот набор данных перезаписывается данными в редакторе предпочтений, как только приложение приостанавливается.Сохраненные сохраненные настройки
Мой код для хранения значений:
SharedPreferences sp=this.getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor ed=sp.edit();
ed.putString("Latitude",lat);
ed.putString("Longitude",lon);
ed.apply();
Я также попытался ed.commit(); в дополнение к приложению, но с тем же результатом. Как я могу обновить то, что видно из редактора настроек, с тем, что я здесь храню?
Мои OnPause ничего не делает с предпочтениями, он просто делает некоторое другое домашнее хозяйство:
public void onPause() {
super.onPause();
timer.cancel();
timer.purge();
h2.removeCallbacks(run);
Button b = (Button)findViewById(R.id.button);
b.setText("start");
}
Я устанавливаю значение от предпочтений в этой функции
private void readPrefs(){
SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(this);
String ret=sharedPref.getString("Latitude", "1");
Double lat= Double.parseDouble(ret);
ret=sharedPref.getString("Longitude", "1");
Double lon= Double.parseDouble(ret);
there.setLatitude(lat);
there.setLongitude(lon);
}
Это неоспоримое вызываются из onResume () и onActivityResult(). Я использую SettingsFragment для меню настроек.
введите код своей деятельности, определяющий метод onPause/Ondestro –
Можете ли вы провести эксперимент и сохранить их с разными именами? возможно, эти значения написаны в onPause/onDestroy в вашем приложении или в третьей стороне – petrumo
@Divyesh, см. обновление. OnPause не касается предпочтений ... Я думал, они должны были быть сохранены с apply() или commit()? – MortenSickel