Я пытаюсь передать данные через общие настройки из класса Service в класс Fragment.
Я не столкнулся с синтаксической ошибкой, но есть логическая ошибка, поскольку я не обновляю текстовое представление с обновленным счетчиком шагов, который я хочу в StepsFragment.
Я запускаю счетчик шагов в StepsService.java
и пытаюсь передать информацию в StepsFragment.java
.
Я пробовал следующие решения:
Доступ к общим настройкам службы
Можно ли получить данные из общих настроек внутри службы?
Это мой код в StepsService.java
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
final long timeInterval = 1000;
Runnable runnable = new Runnable() {
public void run() {
while (true){
// ------- code for task to run
SharedPreferences.Editor editor = getSharedPreferences("DeviceToken",MODE_PRIVATE).edit();
editor.putString("DeviceToken",String.valueOf(stepsCounter));
editor.apply();
addNotification(String.valueOf(stepsCounter));
// ------- ends here
try {
Thread.sleep(timeInterval);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
};
Thread thread = new Thread(runnable);
thread.start();
return START_NOT_STICKY;
}
Это мой код в StepsFragment.java
public void startService(View view) {
Intent serviceIntent = new Intent(getActivity(),StepsService.class);
getActivity().startService(serviceIntent);
SharedPreferences prefs = this.getActivity().getSharedPreferences("DeviceToken", MODE_PRIVATE);
String deviceToken = prefs.getString("DeviceToken", null);
tv_steps.setText(deviceToken);
}