Название не очень хорошее, пожалуйста, прочитайте ниже, чтобы лучше понять мою проблему
У меня есть приложение Android, одна из его задач занимает много времени и часто занимает от 2 до 5 минут.... эта задача выполняется фоновым сервисом, который ссылается на активность стартера.
99% пользователей не хотят все это время ждать, глядя на панель загрузки, и просто открывают другое приложение иличто-то вроде ... что может привести к android destroying
ссылочной деятельности ...
Игнорирование утечки контекста этой истории ... моя проблема:
Когда служба завершает свою работуЗадача будет пытаться вызвать метод, чтобы вернуть значения родительской активности, но так как она была уничтожена, я не могу это сделать ...
Так что, когда пользователь повторно открывает приложение, последнее известное состояниеэтим действием является «загрузка», поэтому она продолжает загружаться вечно ... (или повторите попытку, чтобы выполнить задачу еще раз, что приведет к еще 5 минутам ожидания и т. д.)
как мне избежать этой ситуации?
============== update =================
После получения очень хорошего ответа, который, вероятно, решитБольшинство проблем, таких как моя, я решил добавить больше информации, чтобы разрешить мою проблему.
Фоновая служба, отнимающая много времени, не требует интенсивного процесса, на самом деле причина, по которой она занимает столько времени, заключается в том, что она проверяется с помощью службыпользовательские «учетные данные» (когда я говорю, что это действительно больше, чем один)
Так что я не могу сохранить результат и верю, что он действителен при следующем запуске
Я знаю этот протоколнуждается в улучшении, но собираюсь изменить архитектуру, поэтому я хотел бы знать, есть ли у кого-нибудь идеи, как справиться с его актуальными требованиями