我的服务是一个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;
}
}