Мой сервис - это 3-часовой таймер, который должен работать в фоновом режиме до тех пор, пока время не закончится (даже если пользователь выходит из приложения).
Я успешно создал и связал свой сервис с фрагментом.
Это позволяет мне показывать таймер в реальном времени пользователю.
Когда я выхожу из приложения, служба продолжает работать должным образом и даже отправляет уведомление пользователю после завершения таймера (даже если приложение не открыто)
Моя проблема заключается в следующем:
Когда пользователь закрывает приложение, а затем снова открывает его до окончания таймера, я не могу получить ссылку на этот запущенный сервис ...
Вот мой код для создания и привязки сервиса
private ServiceConnection connection = new ServiceConnection(){
@Override
public void onServiceConnected(ComponentName componentName, IBinder
binder){
TimerService.TimerBinder binderTime
= (TimerService.TimerBinder) binder;
Funx.getInstance().setTimerService(binderTime.getOgBinder());
bound = true;
}
@Override
public void onServiceDisconnected(ComponentName componentName){
bound = false;
}
};
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
Intent intent = new Intent(getContext(), TimerService.class);
Objects.requireNonNull(getContext()).bindService(intent, connection,
Context.BIND_AUTO_CREATE);
}
@Override
public void onDestroy(){
super.onDestroy();
if (bound){
Objects.requireNonNull(getActivity()).unbindService(connection);
bound = false;
}
}