У меня есть следующий блок кода, который зацикливается на последнем просмотре, я бы хотел остановить его работу и освободить ресурсы после того, как приложение больше не будет на переднем плане.Android Java: как полностью удалить экземпляр ScheduledExecutorService, когда приложение не находится на переднем плане
Со следующим: runnable не останавливается, он просто продолжается.
ScheduledFuture<?> dfgh;
private void getLastSeen() {
AsyncTask.execute(new Runnable() {
@Override
public void run() {
ScheduledExecutorService scheduleTaskExecutor = Executors.newSingleThreadScheduledExecutor();
dfgh = scheduleTaskExecutor.scheduleAtFixedRate(new Runnable() {
public void run() {
if (!Presence.screenLocked(A) && Presence.inForeground(A)) {
MessageHelper.getLastSeen(RECIPIENT, A);
System.out.println("Checking Presence");
} else {
System.out.println("App not in foreground or screen is locked");
dfgh.cancel(true);
//cancel here doesn't seem to cancel.
}
}
}, 0, 2, TimeUnit.SECONDS);
}
});
}